python使用re模塊爬取豆瓣Top250電影
爬蟲四步原理:
1.發(fā)送請(qǐng)求:requests
2.獲取相應(yīng)數(shù)據(jù):對(duì)方及其直接返回
3.解析并提取想要的數(shù)據(jù):re
4.保存提取后的數(shù)據(jù):with open()文件處理
爬蟲三步曲:
1.發(fā)送請(qǐng)求
2.解析數(shù)據(jù)
3.保存數(shù)據(jù)
注意:豆瓣網(wǎng)頁爬蟲必須使用請(qǐng)求頭,否則服務(wù)器不予返回?cái)?shù)據(jù)
import re
import requests
# 爬蟲三部曲:
# 1.獲取請(qǐng)求
def get_data(url, headers):
response = requests.get(url, headers=headers)
# 如果爬取的是html文本就是用.text方法獲取文本數(shù)據(jù),如果爬取的是音視頻就用.content方法獲取二進(jìn)制流數(shù)據(jù)
# print(response.text) # 獲取相應(yīng)文本,比如html代碼
return response.text
# 2.解析數(shù)據(jù)
def parser_data(text):
# re.findall("正則表達(dá)式", "過濾的文本", re.S) # 匹配模式:re.S 全局模式
data = re.findall(
'<div class="item">.*?<a href="(.*?)" rel="external nofollow" >.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人評(píng)價(jià)</span>', text, re.S)
for move_info in data:
yield move_info
# 3.保存數(shù)據(jù)
def save_data(res_list_iter):
with open("豆瓣TOP250.txt", "a", encoding="utf-8") as f:
for i in res_list_iter:
move_page, move_title, move_score, move_evaluation = i
# print(move_page, move_title, move_score, move_evaluation)
str1 = f"電影名字:《{move_title}》 電影評(píng)分:{move_score} 電影評(píng)價(jià):{move_evaluation} 電影詳情頁:{move_page}\n"
f.write(str1)
# 使用請(qǐng)求頭請(qǐng)求數(shù)據(jù)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 \
Safari/537.36'
}
n = 0
# 獲取10個(gè)鏈接
for i in range(10):
url = f"https://movie.douban.com/top250?start={n}&filter=="
n += 25
text = get_data(url, headers)
res_list_iter = parser_data(text)
save_data(res_list_iter)
執(zhí)行結(jié)果:

以上就是python使用re模塊爬取豆瓣Top250電影的詳細(xì)內(nèi)容,更多關(guān)于python 爬取豆瓣電影的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pandas如何將表格的前幾行生成html實(shí)戰(zhàn)案例
這篇文章主要介紹了Pandas如何將表格的前幾行生成html實(shí)戰(zhàn)案例,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn)
這篇文章主要介紹了Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python+wxPython實(shí)現(xiàn)批量文件擴(kuò)展名替換
這篇文章主要介紹了如何使用 Python和wxPython創(chuàng)建一個(gè)簡(jiǎn)單的圖形界面應(yīng)用程序,使用戶能夠選擇文件夾、輸入要替換的文件類型和新的文件類型,并實(shí)現(xiàn)批量替換文件擴(kuò)展名的功能,有需要的可以參考一下2023-10-10
PyCharm中Matplotlib繪圖不能顯示UI效果的問題解決
這篇文章主要介紹了PyCharm中Matplotlib繪圖不能顯示UI效果的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python selenium自動(dòng)化測(cè)試模型圖解
這篇文章主要介紹了Python selenium自動(dòng)化測(cè)試模型圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)清理微信僵尸粉功能示例【基于itchat模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)清理微信僵尸粉功能,結(jié)合實(shí)例形式分析了Python使用itchat模塊刪除微信僵尸粉的相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-05-05
基于Python實(shí)現(xiàn)人臉識(shí)別相似度對(duì)比功能
人臉識(shí)別技術(shù)是一種通過計(jì)算機(jī)對(duì)人臉圖像進(jìn)行分析和處理,從而實(shí)現(xiàn)自動(dòng)識(shí)別和辨認(rèn)人臉的技術(shù),隨著計(jì)算機(jī)視覺和模式識(shí)別領(lǐng)域的快速發(fā)展,人臉識(shí)別技術(shù)取得了長(zhǎng)足的進(jìn)步,本文給大家介紹了基于Python實(shí)現(xiàn)人臉識(shí)別相似度對(duì)比功能,感興趣的朋友可以參考下2024-01-01
pandas實(shí)現(xiàn)將dataframe滿足某一條件的值選出
今天小編就為大家分享一篇pandas實(shí)現(xiàn)將dataframe滿足某一條件的值選出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06

