在學(xué)習(xí)了python基礎(chǔ)后,一心想著快速入門爬蟲,因?yàn)槲揖褪菫榕老x而學(xué)的python,所以就找了這個(gè)豆瓣電影來(lái)爬取。好了,廢話不多說(shuō),進(jìn)入正題
1.找到網(wǎng)頁(yè)并分析網(wǎng)頁(yè)結(jié)構(gòu)
首先進(jìn)入豆瓣電影Top250這個(gè)網(wǎng)頁(yè),按下f12打開開發(fā)者工具,如下圖

然后開始分析網(wǎng)頁(yè),點(diǎn)擊開發(fā)者工具左上角的有個(gè)箭頭的東西去找你需要找的數(shù)據(jù),在這里我發(fā)現(xiàn)每個(gè)電影的信息都是在li的標(biāo)簽內(nèi),所以可以用正則表達(dá)式來(lái)先提取每一個(gè)電影,然后在分別提取每個(gè)電影中的數(shù)據(jù)。每個(gè)電影現(xiàn)在的數(shù)據(jù)都可以獲取了,但是這個(gè)url只有25個(gè)電影,怎樣獲取下一頁(yè)的呢?這里我們可以在每個(gè)頁(yè)面獲取下一頁(yè)的鏈接,然后通過(guò)循環(huán)來(lái)繼續(xù)獲取下一頁(yè)的電影數(shù)據(jù)即可

我們可以先用開發(fā)者工具的箭頭點(diǎn)一下后頁(yè),然后就顯示右邊的箭頭數(shù)據(jù)出來(lái),這里我們也可以用正則表達(dá)式來(lái)獲取下一頁(yè)的鏈接,然后接下來(lái)的工作就是循環(huán)了,好了分析結(jié)束,開始敲代碼吧!
2.用面向?qū)ο蟮姆椒ㄟM(jìn)行爬取數(shù)據(jù)
先用requests對(duì)網(wǎng)頁(yè)進(jìn)行請(qǐng)求,獲取網(wǎng)頁(yè)的html結(jié)構(gòu),在這里,為了防止網(wǎng)頁(yè)的反爬蟲技術(shù),我加了個(gè)請(qǐng)求頭
(記得使用requests庫(kù)之前先導(dǎo)入,沒有的可以在命令行通過(guò)pip install requests進(jìn)行下載)
請(qǐng)求頭在開發(fā)者工具中查看,如下圖所示

接下用正則表達(dá)式進(jìn)行獲取數(shù)據(jù)
先匹配每一個(gè)電影和每一頁(yè)數(shù)據(jù)(使用正則表達(dá)式的庫(kù)是re)


接下來(lái)獲取每個(gè)電影的數(shù)據(jù)


注意:獲取到上面的數(shù)據(jù),有的是空的,所以還需要進(jìn)行判斷是否為空,為了好看,我用了三元表達(dá)式進(jìn)行判斷,完成之后把他們存入字典

接下來(lái)就是進(jìn)行循環(huán)取下一頁(yè)的數(shù)據(jù)了

3.如果你有點(diǎn)數(shù)據(jù)庫(kù)基礎(chǔ)的話,還可以把他們存入數(shù)據(jù)庫(kù),在這里我把這些數(shù)據(jù)存入MySQL數(shù)據(jù)庫(kù),代碼如下,需要自己先建好數(shù)據(jù)庫(kù)好表格
這是操作數(shù)據(jù)庫(kù)的類(使用的庫(kù)為pymysql)


然后回到爬蟲類進(jìn)行把數(shù)據(jù)存入數(shù)據(jù)庫(kù)

4.成功后你就會(huì)在數(shù)據(jù)庫(kù)中查到以下數(shù)據(jù)

END
最后,非常感謝你看完了這篇文章,喜歡的話可以點(diǎn)贊或者轉(zhuǎn)發(fā)下,謝謝哈,或者有什么問(wèn)題的話歡迎去我的微信公眾號(hào)日常學(xué)python后臺(tái)回復(fù)我,我會(huì)認(rèn)真回答的。
ps:如果需要完整代碼的話可以在微信公眾號(hào)日常學(xué)python后臺(tái)回復(fù)top250即可,或者想要什么學(xué)習(xí)資源也可以后臺(tái)找我哦