以前也用過爬蟲,比如使用nutch爬取指定種子,基于爬到的數(shù)據(jù)做搜索,還大致看過一些源碼。當(dāng)然,nutch對(duì)于爬蟲考慮的是十分全面和細(xì)致的。每當(dāng)看到屏幕上唰唰過去的爬取到的網(wǎng)頁信息以及處理信息的時(shí)候,總感覺這很黑科技。正好這次借助梳理Spring MVC的機(jī)會(huì),想自己弄個(gè)小爬蟲,簡(jiǎn)單沒關(guān)系,有些小bug也無所謂,我需要的只是一個(gè)能針對(duì)某個(gè)種子網(wǎng)站能爬取我想要的信息就可以了。有Exception就去解決,可能是一些API使用不當(dāng),也可能是遇到了http請(qǐng)求狀態(tài)異常,又或是數(shù)據(jù)庫讀寫有問題,就是在這個(gè)報(bào)exception和解決exception的過程中,JewelCrawler(兒子的小名)已經(jīng)可以能夠獨(dú)立的爬取數(shù)據(jù),并且還有一項(xiàng)基于Word2Vec算法做個(gè)情感分析的小技能。
后面可能還會(huì)有未知的Exception等著解決,也有一些性能需要優(yōu)化,比如和數(shù)據(jù)庫的交互,數(shù)據(jù)的讀寫等等。但是目測(cè)年內(nèi)沒有太多精力放這上面了,所以今天做一個(gè)簡(jiǎn)單的總結(jié),而且前兩篇主要側(cè)重的是功能和結(jié)果,這篇來說說JewelCrawler是如何誕生的,并將代碼放到Github上(源碼地址在文章最后),有興趣的可以關(guān)注下(僅供交流學(xué)習(xí),請(qǐng)勿他用,考慮下douban君。多一點(diǎn)真誠,少一點(diǎn)傷害)
環(huán)境介紹
開發(fā)工具:Intellij idea 14
數(shù)據(jù)庫: Mysql 5.5 + 數(shù)據(jù)庫管理工具Navicat(可用來連接查詢數(shù)據(jù)庫)