App下載

Python爬取并簡單分析魚油數(shù)據(jù)

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

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

下載W3Cschool手機App,0基礎隨時隨地學編程>>戳此了解

導語

利用Python爬取并簡單分析魚C論壇的魚油數(shù)據(jù)。因為不想影響論壇的正常運作,給論壇服務器帶來不必要的壓力,所以爬蟲代碼里寫了很多sleep語句,花了大概一個星期的時間湊了40萬條數(shù)據(jù)(然后數(shù)據(jù)清洗的時候發(fā)現(xiàn)大部分數(shù)據(jù)是無效的T_T)。因為數(shù)據(jù)都在相關文件里提供了,所以就不要自己重新爬了,因為論壇仿佛沒有什么反爬措施,所以爬蟲代碼并沒有什么學習價值,隨便瞟一眼就行了。

OK,讓我們愉快地開始吧~


相關文件

提取碼: yk8n

開發(fā)工具


Python版本:3.6.4

相關模塊:

requests模塊;

fake_useragent模塊;

pyechart模塊;

以及一些python自帶的模塊。

環(huán)境搭建


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


原理簡介


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


數(shù)據(jù)獲取:

這部分很簡單,魚C論壇每個魚油的個人主頁除了uid不同,其他都是一樣的:



挨個請求每個魚油個人主頁的url,然后把返回的內容保存起來就可以了:



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



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

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



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



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


還有很多uid是無效用戶:



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


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

首先,讓我們來看看魚C論壇魚油們的男女比例吧:



Emmmm,原來論壇里還是有女生的,我一直以為是沒有女生的。

OK,接下來我們來看看論壇里的魚油學歷分布情況吧:



竟然有將近200個博士,驚訝ing。

OK,接下來我們來看看論壇魚油們的省份分布吧,這里只統(tǒng)計了國內的魚油:



看了魚C論壇的魚油們來自五湖四海,當然在廣東省的魚油是最多的,目測論壇的壇主小甲魚應該是廣東人吧。

再接下來,我們來看看魚C論壇魚油的年齡分布吧:


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

最后,我們再來看看論壇里哪個魚油比較土豪吧,也就是魚幣和C幣最多的魚油,統(tǒng)計結果如下圖所示:


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

嗯,就這樣吧,至少這類文章的寫作步驟應該模仿對了,完整源代碼和數(shù)據(jù)詳見相關文件。


更多

代碼在2018年9月14日前測試無誤


0 人點贊