通過本案例[豆瓣電影Top250信息爬取]鍛煉除正則表達式之外兩種信息解析方式:Xpath和PyQuery。
爬取url地址:https://movie.douban.com/top250
分析:
分析url地址:每頁25條數(shù)據(jù),共計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)
分析網(wǎng)頁源代碼內容:每部電影信息都是放在
...
具體實現(xiàn)代碼如下:
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'
}
# 執(zhí)行爬取
res = requests.get(url,headers=headers)
#判斷響應狀態(tài),并響應爬取內容
if res.status_code == 200:
return res.text
else:
return None
except RequestException:
return None
def parsePage(content):
'''解析爬取網(wǎng)頁中的內容,并返回字段結果'''
print(content)
# =========使用pyquery解析==================
# 解析HTML文檔
doc = pq(content)
#獲取網(wǎng)頁中所有標簽并遍歷輸出標簽名
items = doc("div.item")
#遍歷封裝數(shù)據(jù)并返回
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文檔,返回根節(jié)點對象
html = etree.HTML(content)
#獲取網(wǎng)頁中所有標簽并遍歷輸出標簽名
items = html.xpath('//div[@class="item"]')
#遍歷封裝數(shù)據(jù)并返回
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):
'''執(zhí)行文件追加寫操作'''
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):
''' 主程序函數(shù),負責調度執(zhí)行爬蟲處理 '''
url = 'https://movie.douban.com/top250?start=' + str(offset)
html = getPage(url)
# 判斷是否爬取到數(shù)據(jù),并調用解析函數(shù)
if html:
for item in parsePage(html):
writeFile(item)
# 判斷當前執(zhí)行是否為主程序運行,并遍歷調用主函數(shù)爬取數(shù)據(jù)
if __name__ == '__main__':
for i in range(10):
main(offset=i*25)
time.sleep(1)
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
python
+關注
關注
56文章
4827瀏覽量
86762 -
爬蟲
+關注
關注
0文章
83瀏覽量
7508
發(fā)布評論請先 登錄
相關推薦
熱點推薦
請問USB緩沖區(qū)取數(shù)據(jù)可以多次取嗎?
在使用USB軟件獲取數(shù)據(jù)是,下位機給我發(fā)送了13個32位數(shù)據(jù)到USB IN緩沖區(qū),為什么我調用API函數(shù)想要第一次取1個32位數(shù)據(jù),取完之后再取12位數(shù)據(jù),程序會卡死。
發(fā)表于 07-16 08:12
電氣間隙與爬電距離的相關設計
眾所周知,48V相較12V電壓上升,因此需要更大的爬電距離(安全絕緣路徑)和電氣間隙(安全絕緣間距)。這意味著部分連接器需要重新設計。
FLIR ONE Edge Pro紅外熱像儀在爬寵飼養(yǎng)中的應用
在爬寵飼養(yǎng)中,溫度控制是決定寵物健康與幸福的關鍵因素。無論是巴西龜、蜥蜴還是蛇類,它們依賴外部熱源調節(jié)體溫,稍有不慎就可能導致健康問題。今天,我們就通過一位爬寵主人的真實案例,看看FLIR ONE Edge Pro智能紅外熱像儀如何幫助他精準掌控飼養(yǎng)環(huán)境,讓愛寵舒適生活。
洲明科技亮相2025全國電影交易會
此前,5月20日至23日,2025年全國電影(廈門)交易會暨第27屆全國影片推介會在廈門舉行。作為全國電影標準化委員會LED顯示行業(yè)唯一委員企業(yè),洲明科技應邀參會,為大會主會場提供超高清LED顯示支持,并在核心展覽區(qū)“數(shù)影萬象·影視供應鏈生態(tài)展”設立專題展位,系統(tǒng)展示LE
用于攝像頭模塊的 Open Top QFN 插槽Ironwood Electronics
、Open Top QFN插槽的核心特性Open Top結構頂部開口設計允許芯片直接放置或通過自動化設備(如取放機)快速裝載,無需額外操作空間,適配攝像頭模塊的小型化需求。便于視覺檢測或調試時直接觀察
發(fā)表于 05-09 09:11
什么是爬電距離與電氣間隙?
義爬電距離,可形象理解為一螞蟻沿絕緣材料表面從一導電部件爬至另一導電部件所經最短路徑。它涉及兩個導電部件間沿絕緣材料表面測量的最短空間距離,這一距離的設定需綜合考量電氣設備的額定電壓、絕緣材料的耐泄

華夏電影與利亞德集團合作新成果:全球首款Micro 4k LED電影屏落地
近期,華夏電影與利亞德集團合作的又一重要成果——全球首款Micro 4k LED電影屏正式落地儀式在河北石家莊影城隆重舉行。這款電影屏是行業(yè)內唯一一款通過DCI認證的Micro LED電影
PI推出新型寬爬電距離開關IC
深耕于高壓集成電路高能效功率變換領域的知名公司Power Integrations(納斯達克股票代號:POWI)今天為其面向汽車應用的InnoSwitch3-AQ反激式開關IC推出寬爬電封裝選項
PCB設計中的爬電距離:確保電路板安全可靠
一站式PCBA智造廠家今天為大家講講什么是PCB設計爬電距離?PCB設計爬電距離的重要性。在電子制造業(yè)中,PCB設計是至關重要的一環(huán)。而在PCB設計中,爬電距離是一個關鍵概念,直接關系到電路板
索尼電影攝影機在未來電影制作教育中的作用
日本大學藝術學院自成立以來,作為日本第一所藝術學院,100多年來培養(yǎng)了許多從事專業(yè)電影制作人才。在電影研究系,引入了索尼電影攝影機“FX9”、“FX6” 和 “FX30” 進行實踐教學。我們采訪了
如何理解PCB設計的爬電距離?
一站式PCBA智造廠家今天為大家講講PCB設計爬電距離要求與走線規(guī)則有哪些?PCB設計爬電距離要求與走線規(guī)則。在PCB設計中,爬電距離和走線規(guī)則是關鍵的考慮因素,尤其是在高壓電路和高頻電路的設計中
評論