爬取QQ空間3000萬(wàn)用戶 玩玩大數(shù)據(jù)分析
這是我近期使用C#寫(xiě)的一個(gè)QQ空間蜘蛛網(wǎng)爬蟲(chóng)程序。程序斷斷續(xù)續(xù)的運(yùn)行了兩周,目前總共爬了3000萬(wàn)QQ數(shù)據(jù),其中有300萬(wàn)包含用戶(QQ號(hào),昵稱,空間名稱,頭像,***一條說(shuō)說(shuō)內(nèi)容,***說(shuō)說(shuō)的發(fā)表時(shí)間,空間簡(jiǎn)介,性別,生日,所在省份,城市)的詳細(xì)數(shù)據(jù)。
目前已經(jīng)爬到我的第7圈好友(depth=7)共3000萬(wàn)數(shù)據(jù)。
爬蟲(chóng)主程序運(yùn)行界面:
爬蟲(chóng)程序設(shè)計(jì):
大致設(shè)計(jì)思路是模仿工廠的生產(chǎn)車(chē)間,使用三大獨(dú)立循環(huán)線程組(GetWaitList,CrawlerQQInfos,SaveData)。
詳細(xì)設(shè)計(jì)圖:
再看看,我根據(jù)這份數(shù)據(jù)生成的一些有趣的統(tǒng)計(jì)圖吧!
1、大家一般都在啥時(shí)候發(fā)說(shuō)說(shuō)呢?
從圖中看出一天最冷門(mén)的時(shí)候是凌晨4點(diǎn),這時(shí)全國(guó)正在睡覺(jué)的人最多。 大家最亢奮的是晚上10點(diǎn)到11點(diǎn),人們都喜歡睡前看看別人的空間,發(fā)條說(shuō)說(shuō)。中午12點(diǎn)左右也有一波小高峰。
2、中國(guó)人都喜歡在幾月生小孩呢?
從圖中可看出1月和10月出生的人最多,4月的最少。總體來(lái)說(shuō)上半年的出生率比下半年的低。分析可得,1月多是因?yàn)楹芏嗳颂畹氖悄J(rèn)的1月1號(hào)。4月少,是因?yàn)橹袊?guó)人不喜歡4這個(gè)數(shù)字。10月出生率***,是因?yàn)槟菚r(shí)天氣不冷不熱,秋收后也不是太忙了的原因。(所以我是11月11日?注孤獨(dú))。
3、這是我目前爬取的數(shù)據(jù)人群地區(qū)分布
4、數(shù)據(jù)人群的年齡分布。
上兩張圖,整好和我的信息相吻合。我是湖南人,在江蘇讀的書(shū),而湖南大部分人都在廣東打工。所以地區(qū)分布中,這三個(gè)省整好排在前四名當(dāng)中。而我又是1990年出生的,對(duì)應(yīng)年齡分布圖1990年的用戶最多。從目前的數(shù)據(jù)來(lái)看,無(wú)論是分布地區(qū)以及年齡階段與我的關(guān)聯(lián)還非常大,隨著數(shù)據(jù)量的不斷增加這種關(guān)聯(lián)會(huì)逐漸變小,統(tǒng)計(jì)圖也會(huì)逐漸接近全國(guó)用戶的真實(shí)情況。(這都是博主的話啊,我是河南人,不過(guò)人群年齡應(yīng)該是差不多的,90和91年的比較多。)
點(diǎn)評(píng)下:
你說(shuō)我91年的也不能接觸的都是81年的人吧?肯定是同齡的人比較多,其實(shí)如果博主能分析下在TX上面投資多少錢(qián),根據(jù)用戶秀恩愛(ài)的程度,這樣的數(shù)據(jù),我覺(jué)得還聽(tīng)可以的。(吐槽下。)
5、數(shù)據(jù)人群性別分布
6、下面系列圖是根據(jù)一些“關(guān)鍵字”在說(shuō)說(shuō)中出現(xiàn)的頻率統(tǒng)計(jì)出來(lái)的,相當(dāng)有意思。
單個(gè)用戶的行為是很難看出規(guī)律的,大數(shù)據(jù)的意義在于它會(huì)不斷矯正那個(gè)平衡點(diǎn),從而得出反應(yīng)宏觀現(xiàn)象最真實(shí)的情況。數(shù)據(jù)量越大,平衡點(diǎn)動(dòng)蕩的幅度便越小。進(jìn)而能夠根據(jù)當(dāng)前的數(shù)據(jù)趨勢(shì)預(yù)測(cè)后續(xù)的發(fā)展,為決策提供有力依據(jù)
6.1 圖說(shuō)股市。
現(xiàn)在我們擁有海量的互聯(lián)網(wǎng)社交數(shù)據(jù),如QQ的說(shuō)說(shuō),sina的微博數(shù)據(jù)。我覺(jué)得這些數(shù)據(jù)擁有驚人的利用價(jià)值,這非常值得我們?nèi)パ芯?,去挖掘。我想,用它們?lái)做一些股市或者其它方面的分析預(yù)測(cè)是可行的,準(zhǔn)確度應(yīng)該也是非常高的。
將股票中的關(guān)鍵字做海量數(shù)據(jù)分析,比如會(huì)得出當(dāng)日討論股票熱度排行榜。進(jìn)而能得到海量討論股票的用戶,再通過(guò)市場(chǎng)的實(shí)際反饋找出股票上漲及下跌的正相關(guān)因子,再對(duì)這些海量數(shù)據(jù)進(jìn)行分析計(jì)算得出最靠譜股票推薦大神排行榜。對(duì)這些用戶分級(jí),分優(yōu)先度及抓取密度來(lái)拿數(shù)據(jù)。用這些數(shù)據(jù)分析出哪些是靠譜的股票肯定靠譜!
6.2 群眾討論最多的明星排行榜,還是很靠譜的。(我愛(ài)汪峰哥,我也愛(ài)Jay! —信仰在空中飄揚(yáng))
插播汪峰頭條:素不相識(shí),光聽(tīng)新聞的片面之詞就斷下結(jié)論,那是完整的真相嗎?背后的故事又有誰(shuí)了解多少?實(shí)在反感那些破口大罵的,更是可惡一些媒體就事三番五次的戲謔。
祝峰哥幸福,我很喜歡你的歌!
6.3 最為用戶喜愛(ài)的手機(jī)品牌
6.4 人們最喜歡談?wù)摰幕ヂ?lián)網(wǎng)公司,阿里之所以這么低估計(jì)是大家都喜歡叫它淘寶或者天貓吧。
6.5 QQ空間中討論的最為頻繁的社交平臺(tái)排行榜。
6.6 生活的統(tǒng)計(jì)圖
愛(ài)>恨; 開(kāi)心>傷心; 笑聲>嘆氣聲; 吃貨很多
誰(shuí)特么說(shuō)中國(guó)不幸福了,這滿滿的都是正能量數(shù)據(jù)啊。
好了,其實(shí)還可以做很多其它的分析。如果大家有什么有趣的數(shù)據(jù)分析想知道的,那就給我留言吧。
技術(shù)不多說(shuō)了,程序不難,多線程數(shù)據(jù)庫(kù)操作卻是把我搞苦了。還好,現(xiàn)在程序差不多穩(wěn)定了。過(guò)程也是很有意思的,有空我再寫(xiě)個(gè)程序升級(jí)過(guò)程中的那些趣事吧。我覺(jué)得一個(gè)美妙的程序一定是高度模擬現(xiàn)實(shí)的,就像飛機(jī)模仿蜻蜓,雷達(dá)模仿蝙蝠一樣。這次的程序設(shè)計(jì)就是模擬的工廠的生產(chǎn)線。