先講講做這個(gè)小程序的動(dòng)機(jī)吧,昨天看了下以前學(xué)院的新聞,沒什么更新,但發(fā)現(xiàn)列表很長,保留了2003年1月至今的所有新聞。這個(gè)新聞列表是大學(xué)期間我們了解學(xué)院信息的主要來源,都養(yǎng)成了每天先看新聞再看BBS的習(xí)慣。在大連實(shí)習(xí)期間更是如此,也算是產(chǎn)生感情了^__^,所以。。。決定把這700+新聞全部保存下來...需求:指定一個(gè)網(wǎng)址,將這個(gè)網(wǎng)頁和里面所有的子鏈接頁面都下載下來,保存到指定的文件夾中。如下圖所示:需求有了,怎么完成呢?用迅雷下載全部鏈接?嗯,這是個(gè)好主意,(我確實(shí)也這么做了一次,連接數(shù)開得太多了,差點(diǎn)被封orz ),但咱們是搞軟件的@_@,這個(gè)小功能是不是寫個(gè)程序就能搞定,用Java?想到那一堆Stream的封裝(new BufferedReader(new BufferedOutputStream(new FileOutputStream(new File("blabla.html")))))...我就頭暈。小程序用腳本語言?應(yīng)該不錯(cuò)!用Perl還是Python?。。。經(jīng)過一番網(wǎng)上查詢論證,似乎:Perl語法復(fù)雜,但簡練,API庫也超級多;Python語法清晰易懂,有點(diǎn)像Java,適合開發(fā)大型應(yīng)用。Java是我的最愛,也算熟悉了,就學(xué)點(diǎn)bt的吧,用Perl完成代碼期間主要參考了Perl文檔中URL,HTML::LinkExtor,HTTP::Request的用法,Perl中國的一篇文章《LWP與WEB的基本使用》,還占用了J2EE的上課時(shí)間來編寫程序。。。
主網(wǎng)頁保存為index.html,子網(wǎng)頁按1、2、3排序生成1.html、2.html等因?yàn)橛?a target="_blank">Google Desktop,即使文件名是1.html...,搜索起來也是很方便的。也可以擴(kuò)充下,將<a></a>中的新聞主題抽出來作為文件名。但這個(gè)程序?qū)ξ襾碚f已經(jīng)足夠了,所以就不繼續(xù)做了。總的來說用Perl還是很簡單的,庫也很多,寫起來挺方便!但是要記得常翻翻Perl手冊,呵呵Technorati Tag :? Perl?LWP? Download? web? script