簡介
前幾天嫂粟,一直在學習爬蟲,然后最近想到了一個不錯的idea墨缘,想以這個小demo來結束爬蟲的學習星虹。
是這樣的:登入qq空間零抬,爬取自己或者好友的所有說說記錄,然后區(qū)統(tǒng)計分析一共發(fā)了多少說說宽涌,每條說說的評論有多少平夜,誰評論的最多,有多少贊卸亮,誰贊最多忽妒,還有可以找出你的qq好友中男女比例多少,來自哪里兼贸,什么星座等等段直。
思路
這里講下具體思路,具體代碼我托管到github溶诞,有興趣的朋友可以去fork鸯檬,https://github.com/jerry-sc/QQZone.git
這次爬蟲并沒有使用之前博客提到的scrapy,而是轉向了JAVA很澄,用的框架叫做webmagic京闰。可能大家對這個框架比較陌生甩苛,畢竟這個出現(xiàn)也沒多久蹂楣,而且是一個大牛業(yè)余開發(fā)的,用的人也不是特別多讯蒲,我也是偶然百度的時候搜到的痊土。它的主頁是http://webmagic.io 大家有興趣可以看下,我個人覺得寫得還是非常棒的墨林,它也是模仿scrapy這一成熟框架起來的赁酝,如果你對java比較了解,遇到問題看看源碼旭等,會讓你對爬蟲的體系有更近一步的了解酌呆,如果你對scrapy比較了解,那么我想你只要掌握寫基本的java語法知識搔耕,那么必會輕松掌握此框架隙袁。
QQ空間就像新浪微博一樣,如果要實現(xiàn)模擬登入弃榨,你一定要花很多功夫去了解里面的加密技術等菩收,這種高端技術吾等小白還有很長一段路要走,所以我這里用最笨的辦法鲸睛,就是登入后獲取cookie然后手動填入請求頭中娜饵。
簡單的分析下網頁源代碼可以發(fā)現(xiàn),qq的說說信息官辈,都是js帶過來的箱舞,所以這里要面對的是如何從js文件中抽取信息遍坟,好在webmagic的作者在其框架介紹里面寫了一篇如何爬取動態(tài)網頁的博客,收獲實在是太多了褐缠,http://webmagic.io/docs/zh/posts/chx-cases/js-render-page.html 這是地址政鼠,即使你不用此框架也沒事,相信看了后队魏,定會對動態(tài)網頁的爬取獲得經驗公般。關于爬取URL的說明,我這里也不多說了胡桨,大家可以結合我的代碼看看(我承認代碼有點亂官帘,不過我非常歡迎大家和我交流,一個人悶頭寫代碼昧谊,收獲遠不及大家討論刽虹,這也是我寫博客的重要原因)。
我將爬取到的數(shù)據(jù)呢诬,保存到mysql中涌哲,下面是四張表的截圖,關于表的設計尚镰,我并沒有對其進行規(guī)范化設計阀圾,只是將其作為數(shù)據(jù)保存。
實現(xiàn)
一狗唉、說說表(shuoshuo)
二初烘、評論表(comment)
三、好友表(friend)
四分俯、贊表(zan)
最后肾筐,是數(shù)據(jù)的分析,由于沒學過什么聚類缸剪,分類等數(shù)據(jù)挖掘的算法等吗铐,所以我這里只是簡單的對數(shù)據(jù)進行求和,排序等杏节。最近在開始看數(shù)據(jù)挖掘算法之類的書抓歼,爭取以后結合一些算法,對數(shù)據(jù)進行更深層次的挖掘拢锹。
成果展示的圖表我這里用了一個叫jfreechart的圖表生成插件,網上一搜萄喳,到處都是教程卒稳,這里也不做詳細介紹了。直接上圖吧他巨。
That's All. 以上就是這個小demo的所有內容了充坑,歡迎大家和我一起交流探討减江。