通過本案例[豆瓣電影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
+關注
關注
57文章
4876瀏覽量
90036 -
爬蟲
+關注
關注
0文章
87瀏覽量
8091
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙智能體開發知識庫---創建知識庫
源信息,可以選擇對圖片智能標注;
3.導入方式-數據源:配置接口的形式導入知識數據,按提示填寫相關信息;
4.導入方式-爬蟲:填寫爬取地址,配置
發表于 03-06 10:18
一文讀懂電氣間隙與爬電距離 · 來龍去脈:設計指南、影響因素、計算方法、案例說明
-關于《電氣間隙與爬電距離的全面解析與設計指南》的解析-文字原創,素材來源:TI、IEC、IPC、GB、網絡-「SysPro|電動汽車標準解讀」專欄內容,全文13700字-本篇為節選,完整內容會在
爬壁機器人磁鐵的一些常見問題
爬壁機器人近幾年比較火,它是一類能夠在垂直墻面、天花板、傾斜表面上移動和作業的特種機器人,今天我們不聊其它,只聊下關于磁吸附應用中的磁鐵,以下是小編整理的關于爬壁機器人中磁鐵的一些常見問題。
2026 開工大吉 | 電源互連技術白皮書:爬電距離與電氣間隙解析
——該標準會根據 材料等級、工作電壓以及污染等級 ,明確規定 爬電距離與電氣間隙 的具體數值。無論系統設計方案如何,爬電距離和電氣間隙都關乎產品安全,是必須滿足的合規指標。 近期Samtec發布了一份技術白皮書,旨在闡釋 爬電
京東關鍵詞搜索商品列表的Python爬蟲實戰
!) 京東擁有商品數據的版權,爬蟲僅可用于 個人學習、研究 ,禁止用于商業用途、批量爬取造成京東服務器壓力。 遵守京東《用戶協議》和robots.txt協議(京東https://www.jd.com/robots.txt明確限制了部分爬蟲行為)。 本實戰僅演示基礎爬蟲思路
瀟湘電影集團與洲明集團達成戰略合作
12月10日,瀟湘電影集團與洲明集團戰略合作簽約儀式圓滿舉行。此次合作雙方將在LED電影屏、光顯系統及國產電影拍攝器材等核心領域展開深度合作,共同推動影視產業與光顯科技的融合創新。
第七屆海南島國際電影節聯想AI電影季開幕
12月7日,由海南島國際電影節組委會指導,今日美術館AI藝術創新聯盟(AIAIA)、聯想集團主辦的“第七屆海南島國際電影節·聯想AI電影季”在海南三亞開幕。本屆AI電影季共吸引全球56
一文讀懂 · 電氣間隙與爬電距離 · 來龍去脈:設計指南、影響因素、計算方法、案例說明
-關于《電氣間隙與爬電距離的全面解析與設計指南》的解析-文字原創,素材來源:TI、IEC、IPC、GB、網絡-「SysPro|電動汽車標準解讀」專欄內容,全文13700字-本篇為節選,完整內容會在
POE取電保護
防雷 / 過電壓 / 電流 / ESD 電子電路保護器件專業提供商 針對POE取電, 國際IEEE 802.3標準說明 及兩種取電方式 ? www.yint.com.cn 本文為音特公司技術人員
“爬電距離”與“電氣間隙”是怎樣計算的?
大家好,分享一篇優秀文章,歡迎轉載共同學習。 做高壓產品,經常會涉及到爬電距離和電氣間隙,今天來看看這2個參數是由什么決定的? 爬電距離 沿絕緣表面測得的兩個導電零部件之間或導電零部件與設備防護界面
請問USB緩沖區取數據可以多次取嗎?
在使用USB軟件獲取數據是,下位機給我發送了13個32位數據到USB IN緩沖區,為什么我調用API函數想要第一次取1個32位數據,取完之后再取12位數據,程序會卡死。
發表于 07-16 08:12
電氣間隙與爬電距離的相關設計
眾所周知,48V相較12V電壓上升,因此需要更大的爬電距離(安全絕緣路徑)和電氣間隙(安全絕緣間距)。這意味著部分連接器需要重新設計。
FLIR ONE Edge Pro紅外熱像儀在爬寵飼養中的應用
在爬寵飼養中,溫度控制是決定寵物健康與幸福的關鍵因素。無論是巴西龜、蜥蜴還是蛇類,它們依賴外部熱源調節體溫,稍有不慎就可能導致健康問題。今天,我們就通過一位爬寵主人的真實案例,看看FLIR ONE Edge Pro智能紅外熱像儀如何幫助他精準掌控飼養環境,讓愛寵舒適生活。
用于攝像頭模塊的 Open Top QFN 插槽Ironwood Electronics
、Open Top QFN插槽的核心特性Open Top結構頂部開口設計允許芯片直接放置或通過自動化設備(如取放機)快速裝載,無需額外操作空間,適配攝像頭模塊的小型化需求。便于視覺檢測或調試時直接觀察
發表于 05-09 09:11
豆瓣電影Top250信息爬取
評論