Posted on 2011-03-12 16:03
亂78糟 閱讀(3371)
評論(12) 編輯 收藏 引用 所屬分類:
免費小軟件 、
開源
閑暇之余,小哥我愛泡在天涯論壇上看帖,最常逛的就是煮酒論史和經濟雜談。
天涯就像一個熱鬧的大茶館,泡上一杯熱茶,放著自己喜歡的音樂,悠然的點開自己關注的帖子。巴特,廣告,吵雜的頂貼讓小哥我悠閑的心情大打折扣。
從開始的無視,到后來的忍受,到最后的爆發,小哥我終于憤怒了——難道就沒有一款好用的工具嗎?
百度、谷歌、必硬之,結果都不滿意。
奶奶的,咱好歹也是一寫程序的,不就是一個抓帖子的小軟件嗎?小哥自己搗鼓一個!
經過5天的分析,編碼,測試,終于,小哥我滿意的笑了。


抓貼截圖:

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