本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
下載W3Cschool手機App,0基礎(chǔ)隨時隨地學(xué)編程>>戳此了解
導(dǎo)語
利用Python爬取并簡單分析魚C論壇的魚油數(shù)據(jù)。因為不想影響論壇的正常運作,給論壇服務(wù)器帶來不必要的壓力,所以爬蟲代碼里寫了很多sleep語句,花了大概一個星期的時間湊了40萬條數(shù)據(jù)(然后數(shù)據(jù)清洗的時候發(fā)現(xiàn)大部分?jǐn)?shù)據(jù)是無效的T_T)。因為數(shù)據(jù)都在相關(guān)文件里提供了,所以就不要自己重新爬了,因為論壇仿佛沒有什么反爬措施,所以爬蟲代碼并沒有什么學(xué)習(xí)價值,隨便瞟一眼就行了。
OK,讓我們愉快地開始吧~
相關(guān)文件
開發(fā)工具
Python版本:3.6.4
相關(guān)模塊:
requests模塊;
fake_useragent模塊;
pyechart模塊;
以及一些python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
原理簡介
其實爬蟲的文章我一般寫的比較水,然后偶爾瞅了瞅別人的文章,發(fā)現(xiàn)基本是數(shù)據(jù)獲取,清洗,最后可視化分析這個流程,于是打算稍微模仿一下,雖然我可能還是會寫的比較隨意and極其不專業(yè)。
數(shù)據(jù)獲取:
這部分很簡單,魚C論壇每個魚油的個人主頁除了uid不同,其他都是一樣的:
挨個請求每個魚油個人主頁的url,然后把返回的內(nèi)容保存起來就可以了:
最后獲得的數(shù)據(jù)大概這么多,一共40萬條左右吧,雖然大部分是無效的。
數(shù)據(jù)清洗:
接下來我們從每個魚油的個人主頁中提取一些有用的數(shù)據(jù),例如性別、生日、出生地、學(xué)歷等內(nèi)容,具體代碼實現(xiàn)如下:
最后剩下的數(shù)據(jù)大概這么多:
他喵的這也太真實了吧,最后大概只剩下了1萬多條數(shù)據(jù),簡直了。然后我去看了下,發(fā)現(xiàn)很多魚油的主頁是這樣的:
還有很多uid是無效用戶:
本來想重新爬的,后來感覺還得拖幾天太麻煩了,算了,就這樣吧,1萬條數(shù)據(jù)也是數(shù)據(jù)啊,反正估計全爬完也沒多少數(shù)據(jù)。
數(shù)據(jù)可視化分析:
首先,讓我們來看看魚C論壇魚油們的男女比例吧:
Emmmm,原來論壇里還是有女生的,我一直以為是沒有女生的。
OK,接下來我們來看看論壇里的魚油學(xué)歷分布情況吧:
竟然有將近200個博士,驚訝ing。
OK,接下來我們來看看論壇魚油們的省份分布吧,這里只統(tǒng)計了國內(nèi)的魚油:
看了魚C論壇的魚油們來自五湖四海,當(dāng)然在廣東省的魚油是最多的,目測論壇的壇主小甲魚應(yīng)該是廣東人吧。
再接下來,我們來看看魚C論壇魚油的年齡分布吧:
估計論壇里的魚油大部分還是90后的學(xué)生黨吧,雖然90后大多應(yīng)該已經(jīng)畢業(yè)了。
最后,我們再來看看論壇里哪個魚油比較土豪吧,也就是魚幣和C幣最多的魚油,統(tǒng)計結(jié)果如下圖所示:
本來想再分析分析技術(shù)值最高的魚油之類的,不過飯點到了,那就算了吧T_T。感興趣的同學(xué)可以自己下載數(shù)據(jù)繼續(xù)分析分析。
嗯,就這樣吧,至少這類文章的寫作步驟應(yīng)該模仿對了,完整源代碼和數(shù)據(jù)詳見相關(guān)文件。
更多
代碼在2018年9月14日前測試無誤