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 亚洲视频网址,国产成人精品女人不卡在线,日本全黄视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Python|簡單幾行代碼提取html文件中全部指定標簽內的文本

          有以下文件html.html:

          想要提取全部標簽<h4></h4>內的文本,可使用如下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')

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

          運行后會將標簽<h4></h4>內的文本提取到文件new.txt:

          -End-

          信我或關注微信號:獅范課,回復:學習,獲取免費學習資源包。

          如有以下文件html.html:



          想要提取全部標簽<h4></h4>內的文本,可使用如下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,' ')

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

          運行后會將標簽<h4></h4>內的文本提取到文件new.txt:


          來源網絡,侵權聯系刪除

          私信我或關注微信號:獅范課,回復:學習,獲取免費學習資源包。

          取網頁源代碼——Requests 工具包

          在我們提取網絡信息之前,我們必須將網頁的源代碼進行提取,Requests工具包現在可以說是最好用和最普及的靜態網頁爬蟲工具,它是由大神Kenneth Reitz所搭建的。在Requests的官方介紹里,Requests所遵守的哲學理念是:

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

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

          3.Simple is better than complex.(簡單勝過復雜)

          4.Complex is better than complicated.(復雜勝過繁瑣)

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

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

          信息提取——Xpath

          我們普通的網頁一般都是XML文檔格式,當我們想提取里面的內容時,我們需要借助Xpath來分解其中的格式,提取我們想要的內容。在了解Xpath之前我們需要知道四個基本概念:節點、元素、屬性、文本 。我們來看一個例子:

          <?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>
          ?
          

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

          實例分享——爬取豆瓣電影的信息

          接下來我們做一個很簡單的實例分享,我們想爬取在豆瓣網上的電影《超時空同居》的導演和演員信息。

          首先我們找到電影的URL:

          右鍵點擊看網頁的源代碼 view page source(或者可以進入開發者模式(insepect)):

          接下來我們就進入網頁源代碼了,我們想要搜集的信息就在源代碼里,只用輸入關鍵字就可以查看到,比如這里我們輸入’雷佳音’就定位到了我們想要尋找的位置:

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

          大家可以看到有一個普遍的規律:主演的名字所對應的節點名都為a,屬性都為rel="v:starring",這樣我們就可以很輕易的用xpath的語法定位到擁有這個元素的節點,然后將所有的結果找出。

          同理,導演的名字所對應的節點名為a,屬性都為rel=" v:directedBy",我們同樣可以通過這個定位找到相應的文本:

          具體的代碼如下:

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

          最后我們得到一個字典集的結果:

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

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

          首先,json是一種輕量級的數據交換格式,它簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言,易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。

          在我們爬蟲的過程中,我們有時候可以在開發者模式返回的網頁里找到完整的json格式的數據,這時候我們就可以運用requests包里的json函數將爬取到的原文本轉化格式,從而方便我們提取內容。我們還是拿豆瓣電影舉例:

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

          在打開開發者模式之后一定要記得刷新一次,否則不會顯示之前接收到的頁面信息。然后我們選擇右邊標簽的network,下面再點擊XHR選項,我們就會看到一個返回的網頁,雙擊它。

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

          代碼如下:


          主站蜘蛛池模板: 国产福利一区二区| 少妇激情一区二区三区视频 | 亚洲熟女www一区二区三区| 国产一区二区三区福利| 国产精品视频第一区二区三区| 无码人妻av一区二区三区蜜臀| 国产激情无码一区二区| 一区二区三区免费视频观看| 一区二区三区视频| 亚洲一区二区三区高清不卡| 中文字幕一区二区三区有限公司 | 亚洲日韩中文字幕一区| 少妇精品无码一区二区三区| 久久se精品一区二区| 国产在线无码视频一区二区三区 | 性无码一区二区三区在线观看| 亚洲熟女综合一区二区三区| 乱码精品一区二区三区| 亚洲AV日韩AV天堂一区二区三区| 亚洲性日韩精品一区二区三区| 精品一区二区AV天堂| 国产精品资源一区二区 | 精品无人区一区二区三区 | 亚洲AⅤ无码一区二区三区在线 | 亚洲AV综合色区无码一区爱AV| 久久久久国产一区二区| 久久精品一区二区三区中文字幕| 午夜福利国产一区二区| 中文字幕永久一区二区三区在线观看| 国产99精品一区二区三区免费 | 午夜福利国产一区二区| 国产在线精品一区二区不卡麻豆| 午夜视频久久久久一区 | 国产对白精品刺激一区二区| 免费播放一区二区三区| 亚洲av无码成人影院一区| 无码人妻精品一区二区三区9厂| 日本一道一区二区免费看| 日韩毛片一区视频免费| 手机看片福利一区二区三区| 色窝窝无码一区二区三区成人网站 |