App下載

Python爬取并簡(jiǎn)單分析魚(yú)油數(shù)據(jù)

猿友 2018-09-21 15:36:11 瀏覽數(shù) (5395)
反饋

本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄

下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解

導(dǎo)語(yǔ)

利用Python爬取并簡(jiǎn)單分析魚(yú)C論壇的魚(yú)油數(shù)據(jù)。因?yàn)椴幌胗绊懻搲恼_\(yùn)作,給論壇服務(wù)器帶來(lái)不必要的壓力,所以爬蟲(chóng)代碼里寫(xiě)了很多sleep語(yǔ)句,花了大概一個(gè)星期的時(shí)間湊了40萬(wàn)條數(shù)據(jù)(然后數(shù)據(jù)清洗的時(shí)候發(fā)現(xiàn)大部分?jǐn)?shù)據(jù)是無(wú)效的T_T)。因?yàn)閿?shù)據(jù)都在相關(guān)文件里提供了,所以就不要自己重新爬了,因?yàn)檎搲路饹](méi)有什么反爬措施,所以爬蟲(chóng)代碼并沒(méi)有什么學(xué)習(xí)價(jià)值,隨便瞟一眼就行了。

OK,讓我們愉快地開(kāi)始吧~


相關(guān)文件

提取碼: yk8n

開(kāi)發(fā)工具


Python版本:3.6.4

相關(guān)模塊:

requests模塊;

fake_useragent模塊;

pyechart模塊;

以及一些python自帶的模塊。

環(huán)境搭建


安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。


原理簡(jiǎn)介


其實(shí)爬蟲(chóng)的文章我一般寫(xiě)的比較水,然后偶爾瞅了瞅別人的文章,發(fā)現(xiàn)基本是數(shù)據(jù)獲取,清洗,最后可視化分析這個(gè)流程,于是打算稍微模仿一下,雖然我可能還是會(huì)寫(xiě)的比較隨意and極其不專業(yè)。


數(shù)據(jù)獲?。?/span>

這部分很簡(jiǎn)單,魚(yú)C論壇每個(gè)魚(yú)油的個(gè)人主頁(yè)除了uid不同,其他都是一樣的:



挨個(gè)請(qǐng)求每個(gè)魚(yú)油個(gè)人主頁(yè)的url,然后把返回的內(nèi)容保存起來(lái)就可以了:



最后獲得的數(shù)據(jù)大概這么多,一共40萬(wàn)條左右吧,雖然大部分是無(wú)效的。



數(shù)據(jù)清洗:

接下來(lái)我們從每個(gè)魚(yú)油的個(gè)人主頁(yè)中提取一些有用的數(shù)據(jù),例如性別、生日、出生地、學(xué)歷等內(nèi)容,具體代碼實(shí)現(xiàn)如下:



最后剩下的數(shù)據(jù)大概這么多:



他喵的這也太真實(shí)了吧,最后大概只剩下了1萬(wàn)多條數(shù)據(jù),簡(jiǎn)直了。然后我去看了下,發(fā)現(xiàn)很多魚(yú)油的主頁(yè)是這樣的:


還有很多uid是無(wú)效用戶:



本來(lái)想重新爬的,后來(lái)感覺(jué)還得拖幾天太麻煩了,算了,就這樣吧,1萬(wàn)條數(shù)據(jù)也是數(shù)據(jù)啊,反正估計(jì)全爬完也沒(méi)多少數(shù)據(jù)。


數(shù)據(jù)可視化分析:

首先,讓我們來(lái)看看魚(yú)C論壇魚(yú)油們的男女比例吧:



Emmmm,原來(lái)論壇里還是有女生的,我一直以為是沒(méi)有女生的。

OK,接下來(lái)我們來(lái)看看論壇里的魚(yú)油學(xué)歷分布情況吧:



竟然有將近200個(gè)博士,驚訝ing。

OK,接下來(lái)我們來(lái)看看論壇魚(yú)油們的省份分布吧,這里只統(tǒng)計(jì)了國(guó)內(nèi)的魚(yú)油:



看了魚(yú)C論壇的魚(yú)油們來(lái)自五湖四海,當(dāng)然在廣東省的魚(yú)油是最多的,目測(cè)論壇的壇主小甲魚(yú)應(yīng)該是廣東人吧。

再接下來(lái),我們來(lái)看看魚(yú)C論壇魚(yú)油的年齡分布吧:


估計(jì)論壇里的魚(yú)油大部分還是90后的學(xué)生黨吧,雖然90后大多應(yīng)該已經(jīng)畢業(yè)了。

最后,我們?cè)賮?lái)看看論壇里哪個(gè)魚(yú)油比較土豪吧,也就是魚(yú)幣和C幣最多的魚(yú)油,統(tǒng)計(jì)結(jié)果如下圖所示:


本來(lái)想再分析分析技術(shù)值最高的魚(yú)油之類的,不過(guò)飯點(diǎn)到了,那就算了吧T_T。感興趣的同學(xué)可以自己下載數(shù)據(jù)繼續(xù)分析分析。

嗯,就這樣吧,至少這類文章的寫(xiě)作步驟應(yīng)該模仿對(duì)了,完整源代碼和數(shù)據(jù)詳見(jiàn)相關(guān)文件。


更多

代碼在2018年9月14日前測(cè)試無(wú)誤


0 人點(diǎn)贊