10分鐘用Python爬取最近很火的復聯4影評

2021-09-24 02:02:52 字數 2885 閱讀 7033

《復仇者聯盟4:終局之戰》已經上映快三個星期了,全球票房破24億美元,國內票房破40億人民幣。

雖然現在熱度逐漸下降,但是我們還是恬不知恥地來蹭一蹭熱度。上映伊始《復聯4》的豆瓣評分曾破了9分。

在瀏覽器中檢視豆瓣關於復聯4的短評,先來看看url的結構:

可見,我們可以通過修改start的值進入不同的頁面:

可以看到影評內容在span標籤中,class為「short」。

總覽一下爬取內容的步驟:

訪問url,獲取html頁面文字,這一步我們要用到的是requests模組。

解析返回的文字,提取出爬蟲內容,這一步要用的是beautifulsoup模組。

首先是main函式:

def main():

discuss =

a = 0

for i in range(0,100,20):

url = ''+ str(i) +'&limit=20&sort=new_score&status=p'

htmlpage = gethtml(url)

#print(htmlpage)

for t in parsehtml(htmlpage):

for i in discuss:

print(str(a) + ':' + i)

# print(i)

a = a + 1

由於豆瓣一頁顯示20條影評,我們爬前100條,所以這裡訪問了前5個頁面:

def gethtml(url):

try:

r = requests.get(url)

r.raise_for_status()

print("get html successfully")

r.encoding = 'utf-8'

#print(r.text)

return r.text

except:

return ""

當r.raise_for_status() 沒有丟擲異常時,程式通知我們獲取html成功。如果有異常,返回空字串。

如前所述影評是class為short的span,所以可以直接使用bs4的find_all()函式得到乙個含有所有影評的tag的列表。我們只需要把tag中的文字提取出來就可以返回到主函式了。

首先要生成乙個beautifulsoup類的物件,使用html的解析器。html頁面是樹狀分布的,可以通過各種樹的遍歷找到我們需要的標籤,這裡bs4提供了乙個簡單粗暴的find_all,可以直接使用。

find_all()函式返回的是乙個儲存著tag的列表。

def parsehtml(html):

try:

soup = beautifulsoup(html,"html.parser")

a = soup.find_all('span',attrs = )

b =

for i in a:

return b

except:

return

用get_text函式去掉span標籤,只留下內容的文字,加入到b列表裡。然後就可以返回了。同理,如果出錯了,返回空列表。

import requests

from bs4 import beautifulsoup

def gethtml(url):

try:

r = requests.get(url)

r.raise_for_status()

print("get html successfully")

r.encoding = 'utf-8'

#print(r.text)

return r.text

except:

return ""

def parsehtml(html):

try:

soup = beautifulsoup(html,"html.parser")

a = soup.find_all('span',attrs = )

b =

for i in a:

return b

except:

return

def main():

discuss =

a = 0

for i in range(0,100,20):

url = ''+ str(i) +'&limit=20&sort=new_score&status=p'

htmlpage = gethtml(url)

#print(htmlpage)

for t in parsehtml(htmlpage):

for i in discuss:

print(str(a) + ':' + i)

# print(i)

a = a + 1

if __name__ == "__main__":

main()

執行結果:

10分鐘用Python製作戀愛日誌!

前期準備 1.python的wxpy庫,wxpy在itchat的基礎上,通過大量介面優化提公升了模組的易用性,並進行豐富的功能擴充套件。2.python的爬蟲基礎知識。比如,我之前寫到的requests庫的使用。3.python對於日期的操作。對於wxpy庫和requests庫的安裝,都可以用pip...

初識python爬蟲 5分鐘爬取部落格的全部資訊

設定爬取目標 目標 我自己的部落格,目標資料 所有部落格文章的 鏈結 標題 標籤 分析目標 待爬取頁面 待爬取資料 html元素中的h2 class entry title下的超連結的標題和鏈結,標籤列表 實現html解析,得到目標資料 使用beautifulsoup庫解析,官網 將結果資料儲存 可...

10分鐘用Python快速搭建全文搜尋引擎詳解流程

有乙個群友在群裡問個如何快速搭建乙個搜尋引擎,在搜尋之後我看到了這個 官方很貼心,很方便的是已經提供了docker 映象,基本pull下來就可以很方便的使用了,執行命令 cid sudo docker ps a grep searx awk echo searx cid is cid if cid ...