《復仇者聯盟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 ...