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