python使用requests+re爬取豆瓣電影top250簡(jiǎn)單入門爬蟲

在學(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)找我哦

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 聲明:本文講解的實(shí)戰(zhàn)內(nèi)容,均僅用于學(xué)習(xí)交流,請(qǐng)勿用于任何商業(yè)用途! 一、前言 強(qiáng)烈建議:請(qǐng)?jiān)陔娔X的陪同下,閱讀本文...
    Bruce_Szh閱讀 12,988評(píng)論 6 28
  • 妖怪在流浪閱讀 147評(píng)論 0 0
  • 如今,手機(jī)已經(jīng)不僅僅用來(lái)接打電話,智能手機(jī)的出現(xiàn)和大量普及,讓手機(jī)成為了我們生活中最重要的一部分。每天瀏覽...
    碧空月_閱讀 736評(píng)論 3 8
  • 今天我們要考普通話,我上大學(xué)就考過(guò)一次,要求是二乙過(guò)關(guān),結(jié)果我好像以一分之差考了個(gè)三甲,沒過(guò)關(guān)。當(dāng)時(shí)考試是筆試和面...
    黃灰紅閱讀 171評(píng)論 0 0
  • 《活出個(gè)樣給自己看》,今天看到兩位傷殘軍人演唱這首歌,覺得我也要學(xué)會(huì)
    張偉kk閱讀 109評(píng)論 0 0

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