Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 99免费在线,国产一级毛片免,欧美多人换爱交换乱理伦片

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Python|簡(jiǎn)單幾行代碼提取html文件中全部指定標(biāo)簽內(nèi)的文本

          有以下文件html.html:

          想要提取全部標(biāo)簽<h4></h4>內(nèi)的文本,可使用如下Python代碼:

          import re

          with open("html.html",'rU') as strf:

          ....str = strf.read()

          res = r'(?<=<h4>).*?(?=</h4>)'

          li = re.findall(res,str)

          with open("new.txt","w") as wstr:

          ....for s in li:

          ........wstr.write(s)

          ........wstr.write("\r\n")

          ........print(s,'\r\n')

          正則表達(dá)式r'(?<=<h4>).*?(?=</h4>)中括號(hào)部分屬于向后向前查找,相當(dāng)于字符串作為邊界進(jìn)行查找。

          運(yùn)行后會(huì)將標(biāo)簽<h4></h4>內(nèi)的文本提取到文件new.txt:

          -End-

          信我或關(guān)注微信號(hào):獅范課,回復(fù):學(xué)習(xí),獲取免費(fèi)學(xué)習(xí)資源包。

          如有以下文件html.html:



          想要提取全部標(biāo)簽<h4></h4>內(nèi)的文本,可使用如下Python代碼:

          import re

          with open("html.html",'rU') as strf:

          ....str = strf.read()

          res = r'(?<=<h4>).*?(?=</h4>)'

          li = re.findall(res,str)

          with open("new.txt","w") as wstr:

          ....for s in li:

          ........wstr.write(s)

          ........wstr.write(" ")

          ........print(s,' ')

          正則表達(dá)式r'(?<=<h4>).*?(?=</h4>)中括號(hào)部分屬于向后向前查找,相當(dāng)于字符串作為邊界進(jìn)行查找。

          運(yùn)行后會(huì)將標(biāo)簽<h4></h4>內(nèi)的文本提取到文件new.txt:


          來(lái)源網(wǎng)絡(luò),侵權(quán)聯(lián)系刪除

          私信我或關(guān)注微信號(hào):獅范課,回復(fù):學(xué)習(xí),獲取免費(fèi)學(xué)習(xí)資源包。

          取網(wǎng)頁(yè)源代碼——Requests 工具包

          在我們提取網(wǎng)絡(luò)信息之前,我們必須將網(wǎng)頁(yè)的源代碼進(jìn)行提取,Requests工具包現(xiàn)在可以說(shuō)是最好用和最普及的靜態(tài)網(wǎng)頁(yè)爬蟲工具,它是由大神Kenneth Reitz所搭建的。在Requests的官方介紹里,Requests所遵守的哲學(xué)理念是:

          1.Beautiful is better than ugly. (美勝過(guò)丑)

          2.Explicit is better than implicit.(清晰勝過(guò)隱匿)

          3.Simple is better than complex.(簡(jiǎn)單勝過(guò)復(fù)雜)

          4.Complex is better than complicated.(復(fù)雜勝過(guò)繁瑣)

          5.Readability counts.(可讀性很重要)

          Requests工具包的使用非常簡(jiǎn)單,最主要使用的函數(shù)為requests.get(url),其中參數(shù)url就是我們想提取源代碼的網(wǎng)頁(yè),再通過(guò)requests.get(url).text將頁(yè)面轉(zhuǎn)換為字符串,就可以供我們使用了。

          信息提取——Xpath

          我們普通的網(wǎng)頁(yè)一般都是XML文檔格式,當(dāng)我們想提取里面的內(nèi)容時(shí),我們需要借助Xpath來(lái)分解其中的格式,提取我們想要的內(nèi)容。在了解Xpath之前我們需要知道四個(gè)基本概念:節(jié)點(diǎn)、元素、屬性、文本 。我們來(lái)看一個(gè)例子:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          ?
           
          ?
          <bookstore>
          ?
           
          ?
          <book>
          ?
           <title>Harry Potter</title>
          ?
           <author>J K. Rowling</author>
          ?
           <year>2005</year>
          ?
           <price>29.99</price>
          ?
          </book>
          ?
           
          ?
          </bookstore>
          ?
          

          這就是一個(gè)網(wǎng)頁(yè)的源碼,其中 <bookstore> 是文檔節(jié)點(diǎn), <author>J K. Rowling</author> 是元素節(jié)點(diǎn), lang="en" 是屬性節(jié)點(diǎn)。 J K. Rowling 、2005 和29.99是文本(文本通常就是我們想爬取的內(nèi)容)。

          實(shí)例分享——爬取豆瓣電影的信息

          接下來(lái)我們做一個(gè)很簡(jiǎn)單的實(shí)例分享,我們想爬取在豆瓣網(wǎng)上的電影《超時(shí)空同居》的導(dǎo)演和演員信息。

          首先我們找到電影的URL:

          右鍵點(diǎn)擊看網(wǎng)頁(yè)的源代碼 view page source(或者可以進(jìn)入開發(fā)者模式(insepect)):

          接下來(lái)我們就進(jìn)入網(wǎng)頁(yè)源代碼了,我們想要搜集的信息就在源代碼里,只用輸入關(guān)鍵字就可以查看到,比如這里我們輸入’雷佳音’就定位到了我們想要尋找的位置:

          接下來(lái)我們就需要分析TML的格式了,例如我們要找到所有的主演:

          大家可以看到有一個(gè)普遍的規(guī)律:主演的名字所對(duì)應(yīng)的節(jié)點(diǎn)名都為a,屬性都為rel="v:starring",這樣我們就可以很輕易的用xpath的語(yǔ)法定位到擁有這個(gè)元素的節(jié)點(diǎn),然后將所有的結(jié)果找出。

          同理,導(dǎo)演的名字所對(duì)應(yīng)的節(jié)點(diǎn)名為a,屬性都為rel=" v:directedBy",我們同樣可以通過(guò)這個(gè)定位找到相應(yīng)的文本:

          具體的代碼如下:

          import requests
          ?
          from lxml import etree
          ?
           
          ?
           
          ?
          url='https://movie.douban.com/subject/27133303/?from=showing' #輸入我們的url
          ?
          get = requests.get(url).text # get(url) 得到我們的網(wǎng)頁(yè), text將源網(wǎng)頁(yè)轉(zhuǎn)化為字符串
          ?
           
          ?
           
          ?
          selector = etree.HTML(get) # 將源碼轉(zhuǎn)換為xpath可以識(shí)別的TML格式
          ?
           
          ?
           
          ?
          info = {} #字典用于儲(chǔ)存信息
          ?
          info['電影'] = selector.xpath('//title/text()')[0].strip() # 定位電影名字
          ?
          info['導(dǎo)演']=selector.xpath('//a[@rel="v:directedBy"]/text()') # 定位導(dǎo)演名字
          ?
          info['演員']=selector.xpath('//a[@rel="v:starring"]/text()') # 定位演員名字
          ?
          print(info)
          

          最后我們得到一個(gè)字典集的結(jié)果:

          {'電影': '超時(shí)空同居 (豆瓣)', '導(dǎo)演': ['蘇倫'], '演員': ['雷佳音', '佟麗婭', '張衣', '于和偉', '王正佳', '陶虹', '李念', '李光潔', '楊玏', '范明', '徐崢', '楊迪', '方齡', '陳昊']}
          

          實(shí)例分享2——爬取帶有json格式豆瓣電影的信息

          首先,json是一種輕量級(jí)的數(shù)據(jù)交換格式,它簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

          在我們爬蟲的過(guò)程中,我們有時(shí)候可以在開發(fā)者模式返回的網(wǎng)頁(yè)里找到完整的json格式的數(shù)據(jù),這時(shí)候我們就可以運(yùn)用requests包里的json函數(shù)將爬取到的原文本轉(zhuǎn)化格式,從而方便我們提取內(nèi)容。我們還是拿豆瓣電影舉例:

          這是點(diǎn)擊分類后我們看到的電影信息,假如我們想爬取這些電影的信息,我們可以點(diǎn)擊右鍵進(jìn)入開發(fā)者模式(inspector)。

          在打開開發(fā)者模式之后一定要記得刷新一次,否則不會(huì)顯示之前接收到的頁(yè)面信息。然后我們選擇右邊標(biāo)簽的network,下面再點(diǎn)擊XHR選項(xiàng),我們就會(huì)看到一個(gè)返回的網(wǎng)頁(yè),雙擊它。

          上圖就是打開后的json文件,由于我的電腦下載了json插件的緣故,它的格式要更清晰(使用Chrome瀏覽器的同學(xué)可以進(jìn)入Chrome商店下載Juan Ramón JSON Beautifier Chrome插件)。Json文件其實(shí)也可以被理解為是一個(gè)大的字典,里面有很多層小的字典和列表,我們找到j(luò)son網(wǎng)頁(yè)后只需要用requests變成json格式即可方便的提取信息。

          代碼如下:


          主站蜘蛛池模板: 一区二区不卡久久精品| 午夜影视日本亚洲欧洲精品一区 | 在线免费视频一区| 久久久一区二区三区| 午夜福利国产一区二区| 亚洲国产欧美日韩精品一区二区三区 | 精品国产一区二区三区香蕉| 国产精品无码一区二区在线观一| 国产高清在线精品一区| 色窝窝无码一区二区三区成人网站 | 国产AV一区二区三区传媒| 欲色影视天天一区二区三区色香欲| 精品日韩一区二区三区视频 | 亚洲综合色自拍一区| 亚洲国产高清在线一区二区三区| 日韩在线观看一区二区三区| 99偷拍视频精品一区二区| 伊人色综合网一区二区三区| 日本内射精品一区二区视频 | 国产主播福利一区二区| 精品无码国产一区二区三区AV| 亚洲综合av永久无码精品一区二区| 久久久久久一区国产精品| 波多野结衣高清一区二区三区| 国产成人精品无人区一区| 久久国产香蕉一区精品| 久久成人国产精品一区二区| 中文字幕一区二区区免| 日韩精品一区二区三区四区| 日本一区二区不卡视频| 97av麻豆蜜桃一区二区| 无码人妻精品一区二区三区99性| 亚洲一区二区三区四区在线观看| 亚洲欧洲精品一区二区三区| 伊人色综合网一区二区三区| 高清一区二区三区视频| 东京热人妻无码一区二区av| 亚洲视频在线一区| 老熟妇高潮一区二区三区| 视频一区二区在线观看| 曰韩精品无码一区二区三区|