1. 程式人生 > >爬取QQ空間3000萬用戶,玩玩大資料分析

爬取QQ空間3000萬用戶,玩玩大資料分析

這是我近期使用C#寫的一個QQ空間蜘蛛網爬蟲程式。程式斷斷續續的運行了兩週,目前總共爬了3000萬QQ資料,其中有300萬包含使用者(QQ號,暱稱,空間名稱,頭像,最新一條說說內容,最新說說的發表時間,空間簡介,性別,生日,所在省份,城市)的詳細資料。

目前已經爬到我的第7圈好友(depth=7)共3000萬資料。

爬蟲主程式執行介面:

關注微信公眾號:程式設計師交流互動平臺!獲取資料學習!

爬蟲程式設計:

大致設計思路是模仿工廠的生產車間,使用三大獨立迴圈執行緒組(GetWaitList,CrawlerQQInfos,SaveData)。

詳細設計圖:

再看看,我根據這份資料生成的一些有趣的統計圖

(資料量太大了一次載入到記憶體中直接報記憶體不夠了,所以下面的統計資料只取了depth值小資料較完整約80W的資料):

記憶體已經爆了,不能怪我。 誰贊助臺伺服器吧

1、大家一般都在啥時候發說說呢?

從圖中看出一天最冷門的時候是凌晨4點,這時全國正在睡覺的人最多。 大家最亢奮的是晚上10點到11點,人們都喜歡睡前看看別人的空間,發條說說。中午12點左右也有一波小高峰

一會我再統計張中國人習慣幾點起床,幾點吃飯,幾點睡覺的圖吧

2、中國人都喜歡在幾月生小孩呢?

最熱門的是1月份和10月份,最冷門的是4月份。10月份生小孩的多好理解,一年忙差不多了,天氣也不冷不熱正是生小孩的好時候。 但1月份最高且和2月落差很大有點不好理解,那麼冷的天生不怕凍嗎? 我估計是1月份也快過年了,以前沒聚一起的好不容易聚一起了,就容易衝動,衝動就啪啪啪。 4月份生日的最少也好理解,中國人不喜歡4這個數字唄。 大資料有意思吧!! 我覺得太好玩了,後面還有很多呢。

3、這是我目前爬取的使用者所在地分佈

你能猜出我是哪的了嗎?前四名分別為:廣東,湖南,四川,江蘇。 沒錯,我就是湖南的! 湖南人在廣東打工的超級多,這也能理解為什麼廣東排名第一了。江蘇是我上學的地方,有點琢磨不透的是四川和我非情非故的居然排第3名,我的朋友們,你們是誰播的種?站出來! 還有一種可能,四川人交際能力全國第一,我平時在重慶小面吃飯,四川人確實特別,說話語速那個快啊,聲調那個高啊。受不了!

4、資料人群的年齡分佈

一不小心就暴漏了我的年齡,沒錯。我就是那個最高值的1990年;從目前的資料來看,無論是分佈地區以及年齡階段與我的關聯還非常大,隨著資料量的不斷增加這種關聯會逐漸變小,統計圖也會逐漸接近全國使用者的真實情況。真想弄幾臺伺服器分散式搞起,估計一週就能爬上億的簡單資料。 單靠我的筆記本和家裡超爛的網速達到這個目標還很遠。

5、資料人群性別分佈

男比女足足多了23%的人數,我分析認為實際差距應該是不大的,但女生在設定QQ空間訪問許可權時普遍要比男生的高。所以我爬取的資料中男生居多。

6、下面系列圖是根據一些“關鍵字”在說說中出現的頻率統計出來的,相當有意思。

6.1 圖說股市

在知乎“能利用爬蟲技術做到哪些很酷很有趣很有用的事情?” 有一個google實習的哥們@Emily L爬了400億條tweet也做了很多有趣的分,其中提到一篇關於利用twitter上人的心情來預測股市的論文(http://battleofthequants.net/wp-content/uploads/2013/03/2010-10-15_JOCS_Twitter_Mood.pdf)很有意思。另附我在該問題下的答案“用爬蟲監測她(他)的知乎動態”,僅做技術玩樂,求別再噴我猥瑣了。

如果當我們擁有海量的QQ空間最新說說,和sina微博資料。我想,用它們來做一些股市或者其它方面的分析預測是可行的,準確度應該也是非常高的。我接下來可能會考慮去做這件有趣的事情。

將股票中的關鍵字做海量資料分析,比如會得出當日討論股票排行榜。進而能得到海量討論股票的使用者,再通過市場的實際反饋找出股票上漲及下跌的正相關因子,再對這些海量使用者進行分析計算得出最靠譜股票推薦大神排行榜。對這些使用者分級,分優先度及抓取密度來拿資料。用這些資料分析出哪些是靠譜的股票肯定靠譜。

6.2 群眾討論最多的明星排行榜,還是很靠譜的。

另附我抓的明星QQ號吧,純屬娛樂,自辯真假。有些空間確實有很多生活私照。

張傑QQ:4199** 花千骨的趙麗穎QQ:4277** 謝娜QQ:5007** 楊冪QQ:4567** 范冰冰QQ:885** 周杰倫QQ:3326**

6.3 最為使用者喜愛的手機品牌

6.4 人們最喜歡談論的網際網路公司,阿里之所以這麼低估計是大家都喜歡叫它淘寶或者天貓吧。 取這麼多名字,自討苦吃。

6.5 QQ空間中討論的最為頻繁的社交平臺排行榜。

6.6 生活的統計圖

愛>恨; 開心>傷心; 笑聲>嘆氣聲; 吃貨很多; 誰特麼說中國不幸福了,這滿滿的都是正能量資料啊。

好了,其實還可以做很多其它的分析。如果大家有什麼有趣的資料分析想知道的,那就給我留言吧。

技術不多說了,程式不難,多執行緒資料庫操作卻是把我搞苦了。還好,現在程式差不多穩定了。過程也是很有意思的,有空我再寫個程序升級過程中的那些趣事吧。我覺得一個美妙的程式一定是高度模擬現實的,就像飛機模仿蜻蜓,雷達模仿蝙蝠一樣。 這次的程式設計就是模擬的工廠的生產線。

在這裡我還是要推薦下我自己建的大資料學習交流裙:805127855, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴。