Python爬取豆瓣影評(píng)(使用pycharm+Python)
一侥锦、安裝調(diào)用所要用到的庫(kù)函數(shù)
import requests
from bs4 import BeautifulSoup
二叶雹、自定義根據(jù)每頁(yè)影評(píng)的url爬取影評(píng)的方法
# 1.請(qǐng)求url
def getData(url):
三溶浴、請(qǐng)求頭為字典格式
# 2.請(qǐng)求頭為字典格式
# 請(qǐng)求頭中有很多內(nèi)容案铺,User-Agent是必加
# cookie也可以添加(因?yàn)閏ookie在web開(kāi)發(fā)中常用于前端緩存,可以存儲(chǔ)用戶登錄信息)
# 有些網(wǎng)站可以先登錄之后再去重新獲取cookie添加到請(qǐng)求頭中
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'
}
四贴见、攜帶請(qǐng)求頭去發(fā)請(qǐng)求
response = requests.get(url=url, headers=headers)
五烘苹、使用“bs4”和“html5lib”解析網(wǎng)頁(yè)內(nèi)容
bs = BeautifulSoup(response.content, 'html5lib')
六、獲取所有的評(píng)論 span標(biāo)簽
short_list = bs.find_all("span", attrs={"class": "short"})
七片部、遍歷shortList
for short in short_list:
八镣衡、獲取標(biāo)簽內(nèi)部的文字
content = short.text
print(content)
九霜定、main函數(shù)(整個(gè)程序的入口)
if __name__ == '__main__': for i in range(1): # 打印的次數(shù) baseurl = 'https://movie.douban.com/subject/30174085/comments?sort=new_score&status=P' baseurl = baseurl.format(i * 20) # 打印的范圍(條數(shù)) # 循環(huán)調(diào)用爬取每頁(yè)影評(píng)的方法 getData(baseurl)
附件:完整代碼
# Python爬取豆瓣影評(píng)#(爬取其他電影影評(píng)需替換'User-Agent'和打印網(wǎng)址)
import requestsfrom bs4 import BeautifulSoup
# 自定義根據(jù)每頁(yè)影評(píng)的url爬取影評(píng)的方法
def getData(url):
# 請(qǐng)求頭為字典格式(可自定義替換'User-Agent')
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67' }
# 攜帶請(qǐng)求頭去發(fā)請(qǐng)求
response = requests.get(url=url, headers=headers)
# 使用bs4和html5lib解析網(wǎng)頁(yè)內(nèi)容
bs = BeautifulSoup(response.content, 'html5lib')
# 獲取所有的評(píng)論 span標(biāo)簽
short_list = bs.find_all("span", attrs={"class": "short"})
# 遍歷shortList
for short in short_list:
# 獲取標(biāo)簽內(nèi)部的文字
content = short.text
print(content)
# main函數(shù):整個(gè)程序的入口
if __name__ == '__main__': for i in range(1): # 打印的次數(shù)
# 可自定義替換地址
baseurl = 'https://movie.douban.com/subject/30174085/comments?sort=new_score&status=P'
# 打印的范圍(條數(shù))
baseurl = baseurl.format(i * 20)
# 循環(huán)調(diào)用爬取每頁(yè)影評(píng)的方法
getData(baseurl)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者