閑暇之余,小哥我愛泡在天涯論壇上看帖,最常逛的就是煮酒論史和經(jīng)濟(jì)雜談。
天涯就像一個(gè)熱鬧的大茶館,泡上一杯熱茶,放著自己喜歡的音樂,悠然的點(diǎn)開自己關(guān)注的帖子。巴特,廣告,吵雜的頂貼讓小哥我悠閑的心情大打折扣。
從開始的無視,到后來的忍受,到最后的爆發(fā),小哥我終于憤怒了——難道就沒有一款好用的工具嗎?
百度、谷歌、必硬之,結(jié)果都不滿意。
奶奶的,咱好歹也是一寫程序的,不就是一個(gè)抓帖子的小軟件嗎?小哥自己搗鼓一個(gè)!
經(jīng)過5天的分析,編碼,測試,終于,小哥我滿意的笑了。


抓貼截圖:

這里提供下載,希望能夠幫助同是天涯客一點(diǎn)小忙。如果發(fā)現(xiàn)了BUG,或者有好的建議,一定要告訴小哥我哦,呵呵。
已經(jīng)在XP,2003,WIN7下測試過,解壓即可運(yùn)行。
最新版本:1.0 beta3 (圖不再更新了,等v1.0正式版推出,代碼一并提供)
點(diǎn)擊下載
既然有人想要代碼,那么等程序版本穩(wěn)定了,代碼一定奉上,到時(shí)候別嫌小哥我代碼寫的臭哈,呵呵。
=======================[2011.3.28]=============================
額,實(shí)在是抱歉,大腦一發(fā)熱這玩意就整出來了,可是熱情一消散,加上最近挺忙,小哥立即跟泄了氣的皮球一樣,再也不想去碰這東西。
其實(shí)在使用的時(shí)候也發(fā)現(xiàn)不少BUG,還有不少網(wǎng)友提出很多頗有建設(shè)性的建議和意見,我覺得都很好,但是,整個(gè)人就是懶得去修復(fù)和新增新的功能,1.0正式版也不會(huì)再出(至少是在我手上不會(huì)出了)。
不少網(wǎng)友想要代碼,其實(shí)代碼的原理和流程非常簡單,小哥覺得說破了就是哄人的小把戲,可能大家沒有忘這方面想把:)。
我想我還是在提供代碼之前就代碼原理和路程先啰嗦幾句吧:
1)利用IHTMLDocument2獲取網(wǎng)頁信息;
2)根據(jù)天涯帖子的格式內(nèi)容(分析網(wǎng)頁得出),解析、獲取、修改需要網(wǎng)頁信息內(nèi)容,移除不需要的內(nèi)容比如廣告之類;
3)將已經(jīng)重新構(gòu)造的html數(shù)據(jù)流保存為相應(yīng)的文件(html或者txt)。
整理出來的一些還未實(shí)現(xiàn)的新功能和有待改善的地方:
1)指定頁面抓取(很簡單,含有頁面跳轉(zhuǎn)按鈕時(shí)你會(huì)發(fā)現(xiàn)天涯的程序員把所有分頁的鏈接全部按順序隱藏到了html代碼里,稍加遍歷就可得到)
2)分頁合并,將多個(gè)分頁的內(nèi)容合并到一個(gè)分頁里面
3)自動(dòng)跟蹤抓取,記錄用戶已經(jīng)抓取的帖子和頁數(shù),以后從這個(gè)地方自動(dòng)抓取,很實(shí)用的功能吧:)
4)刪除回復(fù)某人的帖子冗余內(nèi)容(比如,LZ回復(fù)某用戶通常是:
作者:xxxx 回復(fù)日期:2011-02-11 14:47:36
LZ這帖子寫的也忒好了!
=========
謝謝)
5)自動(dòng)回帖,這個(gè)功能太邪惡鳥,其實(shí)實(shí)現(xiàn)起來也灰常簡單(原理不透露也不要問我,自己慢慢琢磨和分析天涯的html的代碼就明白了)
6)多線程抓取,當(dāng)前為一個(gè)線程抓,貌似有點(diǎn)慢- -
7)。。。很多細(xì)微的功能,不一一道出了,感興趣的拿到代碼自己嘗試去吧。
已經(jīng)發(fā)現(xiàn)的BUG:
1)極少數(shù)帖子會(huì)導(dǎo)致無法抓取,原因是IHTMLDocument2無法順利下載頁面,程序無法收到FINISH消息,導(dǎo)致掛死,只能終止程序,原因小哥還沒弄清楚,熱切盼望懂的哥們給個(gè)解答,感激涕零!!
2)部分帖子,比如上了紅黑板的(就是標(biāo)題顏色為紅臉或者黑臉,而且前面還有相顏色的小人笑臉標(biāo)記的帖子),HTML格式和通常的不一樣,導(dǎo)致抓取不到帖子實(shí)質(zhì)內(nèi)容,很好改的
3)IE6內(nèi)核的瀏覽器脫機(jī)瀏覽抓取的帖子會(huì)變形,CSS文件導(dǎo)致,也比較好改
目前發(fā)現(xiàn)的就這么多。
廢話了這么多,希望的就是有能力有時(shí)間有興趣的同學(xué)可以搞個(gè)好用的抓取工具來,我也好偷懶享享福:)。
代碼倉促完成,里面有大段C-V的重復(fù)代碼,也懶得改了,畢竟這是一個(gè)小玩具而已,對吧?
代碼已經(jīng)提交到在googlecode上,注意,svn checkout需要密碼,而獲取密碼那個(gè)鏈接被Q掉了,記得先翻Q把密碼搞到手(qiang在c++ blog上盡然是一個(gè)違禁字,OMG, 偉大的天……朝!)。
代碼本來想隨便用的,國人對版權(quán)木有概念,后來想想,算了,還是GPL吧,共同學(xué)習(xí)而已,感興趣的同學(xué)可以修改維護(hù)該代碼,你可以聯(lián)系我: yzljlss#126.com,我把你加到開發(fā)者列表里。你也可以自己另起爐灶,公不公布源代碼木有關(guān)系,記得好用的工具給我郵一個(gè)呀:)
google code 主頁:http://code.google.com/p/ty-bbs-capture/
代碼版權(quán):GPL
最后de呼喚:有好用的抓取工具記得一定要給小哥我U一個(gè)!