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