簡介
前幾天,一直在學(xué)習(xí)爬蟲,然后最近想到了一個(gè)不錯(cuò)的idea,想以這個(gè)小demo來結(jié)束爬蟲的學(xué)習(xí)。
是這樣的:登入qq空間,爬取自己或者好友的所有說說記錄,然后區(qū)統(tǒng)計(jì)分析一共發(fā)了多少說說,每條說說的評論有多少,誰評論的最多,有多少贊,誰贊最多,還有可以找出你的qq好友中男女比例多少,來自哪里,什么星座等等。
思路
這里講下具體思路,具體代碼我托管到github,有興趣的朋友可以去fork,https://github.com/jerry-sc/QQZone.git
這次爬蟲并沒有使用之前博客提到的scrapy,而是轉(zhuǎn)向了JAVA,用的框架叫做webmagic??赡艽蠹覍@個(gè)框架比較陌生,畢竟這個(gè)出現(xiàn)也沒多久,而且是一個(gè)大牛業(yè)余開發(fā)的,用的人也不是特別多,我也是偶然百度的時(shí)候搜到的。它的主頁是http://webmagic.io 大家有興趣可以看下,我個(gè)人覺得寫得還是非常棒的,它也是模仿scrapy這一成熟框架起來的,如果你對java比較了解,遇到問題看看源碼,會(huì)讓你對爬蟲的體系有更近一步的了解,如果你對scrapy比較了解,那么我想你只要掌握寫基本的java語法知識,那么必會(huì)輕松掌握此框架。
QQ空間就像新浪微博一樣,如果要實(shí)現(xiàn)模擬登入,你一定要花很多功夫去了解里面的加密技術(shù)等,這種高端技術(shù)吾等小白還有很長一段路要走,所以我這里用最笨的辦法,就是登入后獲取cookie然后手動(dòng)填入請求頭中。
簡單的分析下網(wǎng)頁源代碼可以發(fā)現(xiàn),qq的說說信息,都是js帶過來的,所以這里要面對的是如何從js文件中抽取信息,好在webmagic的作者在其框架介紹里面寫了一篇如何爬取動(dòng)態(tài)網(wǎng)頁的博客,收獲實(shí)在是太多了,http://webmagic.io/docs/zh/posts/chx-cases/js-render-page.html 這是地址,即使你不用此框架也沒事,相信看了后,定會(huì)對動(dòng)態(tài)網(wǎng)頁的爬取獲得經(jīng)驗(yàn)。關(guān)于爬取URL的說明,我這里也不多說了,大家可以結(jié)合我的代碼看看(我承認(rèn)代碼有點(diǎn)亂,不過我非常歡迎大家和我交流,一個(gè)人悶頭寫代碼,收獲遠(yuǎn)不及大家討論,這也是我寫博客的重要原因)。
我將爬取到的數(shù)據(jù),保存到mysql中,下面是四張表的截圖,關(guān)于表的設(shè)計(jì),我并沒有對其進(jìn)行規(guī)范化設(shè)計(jì),只是將其作為數(shù)據(jù)保存。
實(shí)現(xiàn)
一、說說表(shuoshuo)

二、評論表(comment)

三、好友表(friend)

四、贊表(zan)

最后,是數(shù)據(jù)的分析,由于沒學(xué)過什么聚類,分類等數(shù)據(jù)挖掘的算法等,所以我這里只是簡單的對數(shù)據(jù)進(jìn)行求和,排序等。最近在開始看數(shù)據(jù)挖掘算法之類的書,爭取以后結(jié)合一些算法,對數(shù)據(jù)進(jìn)行更深層次的挖掘。
成果展示的圖表我這里用了一個(gè)叫jfreechart的圖表生成插件,網(wǎng)上一搜,到處都是教程,這里也不做詳細(xì)介紹了。直接上圖吧。









That's All. 以上就是這個(gè)小demo的所有內(nèi)容了,歡迎大家和我一起交流探討。