第5課 實(shí)例二:爬取電影

一、爬取前的準(zhǔn)備工作

1. 選擇一個(gè)網(wǎng)站:https://www.douban.com

2.?在進(jìn)行爬取之前,我們先去看看它的robots協(xié)議。

協(xié)議網(wǎng)址:https://www.douban.com/robots.txt

3.?進(jìn)入首頁(yè)?https://movie.douban.com/top250?start=0&filter=?,打開檢查工具,在Elements里查看這個(gè)網(wǎng)頁(yè),是什么結(jié)構(gòu)。

點(diǎn)擊開發(fā)者工具左上角的小箭頭,選中“肖申克的救贖”,這樣就定位了電影名的所在位置,審查元素中顯示<span class="title">:<span>標(biāo)簽內(nèi)的文本,class屬性;推薦語和評(píng)分也是如此,<span class='inq'>,<span class='rating_num'>;序號(hào):<em class>,<em>標(biāo)簽內(nèi)的文本,class屬性;推薦語<span class='inq'>;鏈接是<a>標(biāo)簽里href的值。最后,它們最小共同父級(jí)標(biāo)簽,是<li>。

4. 我們?cè)贀Q個(gè)電影驗(yàn)證下找的規(guī)律是否正確。

5.?check后,我們?cè)倏匆还?0頁(yè),每頁(yè)的url有什么相關(guān)呢?

第1頁(yè):https://movie.douban.com/top250?start=0&filter=

第3頁(yè):https://movie.douban.com/top250?start=50&filter=

第7頁(yè):https://movie.douban.com/top250?start=150&filter=

發(fā)現(xiàn)只有start后面是有變化,規(guī)律就是第N頁(yè),start=(N-1)*25

6. 基于以上分析,我們有兩種寫爬蟲的思路。

思路一:先爬取最小共同父級(jí)標(biāo)簽?<li>,然后針對(duì)每一個(gè)父級(jí)標(biāo)簽,提取里面的序號(hào)/電影名/評(píng)分/推薦語/鏈接。

思路二:分別提取所有的序號(hào)/所有的電影名/所有的評(píng)分/所有的推薦語/所有的鏈接,然后再按順序一一對(duì)應(yīng)起來。

二、代碼實(shí)現(xiàn)過程(思路一)

import requests# 引用requests庫(kù)

from bs4 import BeautifulSoup# 引用BeautifulSoup庫(kù)

res_films=requests.get('https://movie.douban.com/')# 獲取數(shù)據(jù)

bs_films=BeautifulSoup(res_films.text,'html.parser')# 解析數(shù)據(jù)

fil_title=bs_films.find_all(class_='title')

fil_num=bs_films.find_all(class_="")

list_all=[]# 創(chuàng)建一個(gè)空列表,用于存儲(chǔ)信息

for x in range(len(fil_num)):

? ? list_films=[fil_num[x].text[18:-14],fil_title[x].find('a')['href']]

? ? list_all.append(list_films)

? ? print(list_all)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容