分享Python7個(gè)爬蟲(chóng)小案例(附源碼)
本次的7個(gè)python爬蟲(chóng)小案例涉及到了re正則、xpath、beautiful soup、selenium等知識(shí)點(diǎn),非常適合剛?cè)腴T(mén)python爬蟲(chóng)的小伙伴參考學(xué)習(xí)。
1.使用正則表達(dá)式和文件操作爬取并保存“某吧”某帖子全部?jī)?nèi)容(該帖不少于5頁(yè)。
?本次選取的是某吧中的NBA吧中的一篇帖子,帖子標(biāo)題是“克萊和哈登,誰(shuí)歷史地位更高”。爬取的目標(biāo)是帖子里面的回復(fù)內(nèi)容。
源程序和關(guān)鍵結(jié)果截圖:

2.實(shí)現(xiàn)多線程爬蟲(chóng)爬取某小說(shuō)部分章節(jié)內(nèi)容并以數(shù)據(jù)庫(kù)存儲(chǔ)(不少于10個(gè)章節(jié)。

本次選取的小說(shuō)網(wǎng)址是某小說(shuō)網(wǎng),這里我們選取第一篇小說(shuō)進(jìn)行爬取

然后通過(guò)分析網(wǎng)頁(yè)源代碼分析每章小說(shuō)的鏈接

找到鏈接的位置后,我們使用Xpath來(lái)進(jìn)行鏈接和每一章標(biāo)題的提取

在這里,因?yàn)樯婕暗蕉啻问褂胷equests發(fā)送請(qǐng)求,所以這里我們把它封裝成一個(gè)函數(shù),便于后面的使用

每一章的鏈接獲取后,我們開(kāi)始進(jìn)入小說(shuō)章節(jié)內(nèi)容頁(yè)面進(jìn)行分析

通過(guò)網(wǎng)頁(yè)分析,小說(shuō)內(nèi)容都在網(wǎng)頁(yè)源代碼中,屬于靜態(tài)數(shù)據(jù)

這里我們選用re正則表達(dá)式進(jìn)行數(shù)據(jù)提取,并對(duì)最后的結(jié)果進(jìn)行清洗

然后我們需要將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,這里我將爬取的數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫(kù)中,先封住一下數(shù)據(jù)庫(kù)的操作

接著將爬取到是數(shù)據(jù)進(jìn)行保存

最后一步就是使用多線程來(lái)提高爬蟲(chóng)效率,這里我們創(chuàng)建了5個(gè)線程的線程池

?源代碼及結(jié)果截圖:


?3. 分別使用XPath和Beautiful Soup4兩種方式爬取并保存非異步加載的“某瓣某排行榜”如https://movie.douban.com/top250的名稱、描述、評(píng)分和評(píng)價(jià)人數(shù)等數(shù)據(jù)。
?先分析:
首先,來(lái)到某瓣Top250頁(yè)面,首先使用Xpath版本的來(lái)抓取數(shù)據(jù),先分析下電影列表頁(yè)的數(shù)據(jù)結(jié)構(gòu),發(fā)下都在網(wǎng)頁(yè)源代碼中,屬于靜態(tài)數(shù)據(jù)

接著我們找到數(shù)據(jù)的規(guī)律,使用xpath提取每一個(gè)電影的鏈接及電影名

然后根據(jù)鏈接進(jìn)入到其詳情頁(yè)

分析詳情頁(yè)的數(shù)據(jù),發(fā)現(xiàn)也是靜態(tài)數(shù)據(jù),繼續(xù)使用xpath提取數(shù)據(jù)

最后我們將爬取的數(shù)據(jù)進(jìn)行存儲(chǔ),這里用csv文件進(jìn)行存儲(chǔ)

接著是Beautiful Soup4版的,在這里,我們直接在電影列表頁(yè)使用bs4中的etree進(jìn)行數(shù)據(jù)提取

最后,同樣使用csv文件進(jìn)行數(shù)據(jù)存儲(chǔ)

源代碼即結(jié)果截圖:
XPath版:

Beautiful Soup4版:


4.實(shí)現(xiàn)某東商城某商品評(píng)論數(shù)據(jù)的爬取(評(píng)論數(shù)據(jù)不少于100條,包括評(píng)論內(nèi)容、時(shí)間和評(píng)分)。
?先分析:

本次選取的某東官網(wǎng)的一款聯(lián)想筆記本電腦,數(shù)據(jù)為動(dòng)態(tài)加載的,通過(guò)開(kāi)發(fā)者工具抓包分析即可。
源代碼及結(jié)果截圖:
5. 實(shí)現(xiàn)多種方法模擬登錄某乎,并爬取與一個(gè)與江漢大學(xué)有關(guān)問(wèn)題和答案。
首先使用selenium打開(kāi)某乎登錄頁(yè)面,接著使用手機(jī)進(jìn)行二維碼掃描登錄

進(jìn)入頁(yè)面后,打開(kāi)開(kāi)發(fā)者工具,找到元素,,定位輸入框,輸入漢江大學(xué),然后點(diǎn)擊搜索按鈕

以第二條帖子為例,進(jìn)行元素分析?。
源代碼及結(jié)果截圖:

6. 綜合利用所學(xué)知識(shí),爬取某個(gè)某博用戶前5頁(yè)的微博內(nèi)容。
這里我們選取了人民日?qǐng)?bào)的微博內(nèi)容進(jìn)行爬取,具體頁(yè)面我就不放這了,怕違規(guī)。
源代碼及結(jié)果截圖:
7.自選一個(gè)熱點(diǎn)或者你感興趣的主題,爬取數(shù)據(jù)并進(jìn)行簡(jiǎn)要數(shù)據(jù)分析(例如,通過(guò)爬取電影的名稱、類型、總票房等數(shù)據(jù)統(tǒng)計(jì)分析不同類型電影的平均票房,十年間每年票房冠軍的票房走勢(shì)等;通過(guò)爬取中國(guó)各省份地區(qū)人口數(shù)量,統(tǒng)計(jì)分析我國(guó)人口分布等)。

本次選取的網(wǎng)址是藝恩娛數(shù),目標(biāo)是爬取里面的票房榜數(shù)據(jù),通過(guò)開(kāi)發(fā)者工具抓包分析找到數(shù)據(jù)接口,然后開(kāi)始編寫(xiě)代碼進(jìn)行數(shù)據(jù)抓取。?
源代碼及結(jié)果截圖:


從年度上榜電影票房占比來(lái)看,2019年占比最高,說(shuō)明2019年這一年的電影質(zhì)量都很不錯(cuò),上榜電影多而且票房高。

從趨勢(shì)來(lái)看,從2016年到2019年,上榜電影總票房一直在增長(zhǎng),到2019年達(dá)到頂峰,說(shuō)明這一年電影是非常的火爆,但是從2020年急劇下滑,最大的原因應(yīng)該是這一年年初開(kāi)始爆發(fā)疫情,導(dǎo)致賀歲檔未初期上映,而且由于疫情影響,電影院一直處于關(guān)閉狀態(tài),所以這一年票房慘淡。
????????好了,本次案例分享到此結(jié)束,希望對(duì)剛?cè)胧峙老x(chóng)的小伙伴有所幫助。

最后
??? 小伙伴們學(xué)習(xí)編程,有時(shí)候不知道怎么學(xué),從哪里開(kāi)始學(xué)。掌握了基本的一些語(yǔ)法或者做了兩個(gè)案例后,不知道下一步怎么走,不知道如何去學(xué)習(xí)更加高深的知識(shí)。
那么對(duì)于這些小伙伴們,我準(zhǔn)備了大量的視頻教程,PDF電子書(shū)籍,以及源代碼!
只要+up主威信wangkeit1備注“B站”就可以白嫖領(lǐng)取啦!
