通過本案例[豆瓣電影Top250信息爬取]鍛煉除正則表達式之外兩種信息解析方式:Xpath和PyQuery。
爬取url地址:https://movie.douban.com/top250
分析:
分析url地址:每頁25條數據,共計10頁
第1頁:https://movie.douban.com/top250?start=0
第2頁:https://movie.douban.com/top250?start=25
第3頁:https://movie.douban.com/top250?start=50
...
結果:
for i in range(10):
url = "https://movie.douban.com/top250?start="+str(i*25)
分析網頁源代碼內容:每部電影信息都是放在
...
具體實現代碼如下:
from requests.exceptions import RequestException
from lxml import etree
from pyquery import PyQuery as pq
import requests
import re,time,json
def getPage(url):
'''爬取指定url頁面信息'''
try:
#定義請求頭信息
headers = {
'User-Agent':'User-Agent:Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1'
}
# 執行爬取
res = requests.get(url,headers=headers)
#判斷響應狀態,并響應爬取內容
if res.status_code == 200:
return res.text
else:
return None
except RequestException:
return None
def parsePage(content):
'''解析爬取網頁中的內容,并返回字段結果'''
print(content)
# =========使用pyquery解析==================
# 解析HTML文檔
doc = pq(content)
#獲取網頁中所有標簽并遍歷輸出標簽名
items = doc("div.item")
#遍歷封裝數據并返回
for item in items.items():
yield {
'index':item.find("div.pic em").text(),
'image':item.find("div.pic img").attr('src'),
'title':item.find("div.hd span.title").text(),
'actor':item.find("div.bd p:eq(0)").text(),
'score':item.find("div.bd div.star span.rating_num").text(),
}
'''
# =======使用xpath解析====================
# 解析HTML文檔,返回根節點對象
html = etree.HTML(content)
#獲取網頁中所有標簽并遍歷輸出標簽名
items = html.xpath('//div[@class="item"]')
#遍歷封裝數據并返回
for item in items:
yield {
'index':item.xpath('.//div/em[@class=""]/text()')[0],
'image':item.xpath('.//img[@width="100"]/@src')[0],
'title':item.xpath('.//span[@class="title"]/text()')[0],
'actor':item.xpath('.//p[@class=""]/text()')[0],
'score':item.xpath('.//span[@class="rating_num"]/text()'),
#'time':item[4].strip()[5:],
}
'''
def writeFile(content):
'''執行文件追加寫操作'''
with open("./result.txt",'a',encoding='utf-8') as f:
f.write(json.dumps(content,ensure_ascii=False) + "\n")
#json.dumps 序列化時對中文默認使用的ascii編碼.想輸出真正的中文需要指定ensure_ascii=False
def main(offset):
''' 主程序函數,負責調度執行爬蟲處理 '''
url = 'https://movie.douban.com/top250?start=' + str(offset)
html = getPage(url)
# 判斷是否爬取到數據,并調用解析函數
if html:
for item in parsePage(html):
writeFile(item)
# 判斷當前執行是否為主程序運行,并遍歷調用主函數爬取數據
if __name__ == '__main__':
for i in range(10):
main(offset=i*25)
time.sleep(1)
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
python
+關注
關注
56文章
4807瀏覽量
85041 -
爬蟲
+關注
關注
0文章
82瀏覽量
7010
發布評論請先 登錄
相關推薦
什么是爬電距離與電氣間隙?
義爬電距離,可形象理解為一螞蟻沿絕緣材料表面從一導電部件爬至另一導電部件所經最短路徑。它涉及兩個導電部件間沿絕緣材料表面測量的最短空間距離,這一距離的設定需綜合考量電氣設備的額定電壓、絕緣材料的耐泄
![什么是<b class='flag-5'>爬</b>電距離與電氣間隙?](https://file1.elecfans.com/web3/M00/06/4F/wKgZO2eJH76AHdjZAABMoWt_7Dw637.png)
PI推出新型寬爬電距離開關IC
深耕于高壓集成電路高能效功率變換領域的知名公司Power Integrations(納斯達克股票代號:POWI)今天為其面向汽車應用的InnoSwitch3-AQ反激式開關IC推出寬爬電封裝選項
PCB設計中的爬電距離:確保電路板安全可靠
一站式PCBA智造廠家今天為大家講講什么是PCB設計爬電距離?PCB設計爬電距離的重要性。在電子制造業中,PCB設計是至關重要的一環。而在PCB設計中,爬電距離是一個關鍵概念,直接關系到電路板
索尼電影攝影機在未來電影制作教育中的作用
日本大學藝術學院自成立以來,作為日本第一所藝術學院,100多年來培養了許多從事專業電影制作人才。在電影研究系,引入了索尼電影攝影機“FX9”、“FX6” 和 “FX30” 進行實踐教學。我們采訪了
如何理解PCB設計的爬電距離?
一站式PCBA智造廠家今天為大家講講PCB設計爬電距離要求與走線規則有哪些?PCB設計爬電距離要求與走線規則。在PCB設計中,爬電距離和走線規則是關鍵的考慮因素,尤其是在高壓電路和高頻電路的設計中
QFN爬錫不好如何解決?—SMT錫膏
QFN封裝的芯片IC,側面引腳爬錫是個大難題,經常會遇到一些客戶反饋:qfn爬錫不好怎么解決?qfn芯片引腳標準上錫高度如何確定?qfn側面不爬錫?下面由深圳佳金源錫膏廠家來講解一下:一、QFN錫膏
![QFN<b class='flag-5'>爬</b>錫不好如何解決?—SMT錫膏](https://file1.elecfans.com/web2/M00/FD/02/wKgZomaXdUGAGWEPAABOeT8PveE372.png)
爬電距離是根據什么確定的
爬電距離(Creepage Distance)是指在電氣設備中,兩個導體之間沿絕緣材料表面的距離。它是一個重要的電氣參數,用于評估電氣設備在正常工作和故障條件下的絕緣性能。爬電距離的確定涉及到多個
爬電距離用什么檢測設備
爬電距離是指在電氣設備中,不同電位的導體之間,通過絕緣材料隔離的最短距離。爬電距離的檢測對于確保電氣設備的安全運行至關重要。本文將介紹爬電距離的檢測設備及其使用方法。 一、爬電距離檢測
爬電距離與電壓的對應關系
爬電距離(Creepage Distance)是電氣設備中的一個重要概念,它指的是在絕緣材料表面,沿著絕緣體表面或邊緣,從帶電部分到接地部分或不同電位部分之間的最短距離。爬電距離的大小直接影響
PCB設計安規丨電氣間隙與爬電距離要點
在PCB設計中,爬電距離和電氣間隙是兩個非常重要的安規要求。它們都涉及到PCB上元件之間的安全距離,以確保在元件故障時,不會發生短路或其他安全問題。
爬電距離是指兩個連接的元件之間的距離,通常是通過
發表于 05-10 09:50
帶PFC電路的75W輸出功率、高效率的單級反激式電源TOP250YN中文資料
電子發燒友網站提供《帶PFC電路的75W輸出功率、高效率的單級反激式電源TOP250YN中文資料.pdf》資料免費下載
發表于 03-22 09:37
?2次下載
帶PFC電路的75W輸出功率、高效率的單級反激式電源TOP250YN75W數據手冊
電子發燒友網站提供《帶PFC電路的75W輸出功率、高效率的單級反激式電源TOP250YN75W數據手冊.pdf》資料免費下載
發表于 03-22 09:28
?2次下載
評論