資訊爆炸的時代,重點不在於資訊的取得,而是在於資訊的篩選與整合,所以我們會用搜尋引擎幫我們找資料,但是搜尋引擎也常常有不敷使用的時候。有用的資訊必須經過搜尋、篩選、取回、轉換、整合,搜尋引擎只能幫我們進行搜尋和一部份的篩選,至於資料的取回、轉換、與整合就不是搜尋引擎擅長的事。這個時候,你需要Spider(蜘蛛)程式,來幫你從Web(蜘蛛網)中取回資料,並進後續的處理。

Spider能為你做什麼?
下面列舉幾點Spider可以做的事:
● Spider可以幫你從不同的地方蒐集各種資料,然後將資料存放在你自己的電腦上,任你隨意運用。
● Spider可以幫你在拍賣網站出價,確保你會以多出一元的方式得標。
● Spider可以幫你檢查網站有沒有「斷裂的超連結」(broken link)。
● Spider可以幫你監控競爭廠商的網站,以得知他們的銷售訊息。
● Spider可以幫你將合作廠商的資訊整合進自己的系統。
● Spider可以幫你注意某些你最喜歡的網站,一旦網站有新動態時,你會馬上知道。
● Spider可以每天幫你從幾個新聞網站找出你感興趣的新聞,並彙整成一份你專屬的電子報。

當然Spider的用途不只這些,總而言之,Spider能夠幫我們進行資料收集與處理等繁瑣的事,讓我們省下許多時間。

《Spidering Hacks》一書提供許多專家的技巧,讓我們更有效率地進行Spidering。本書先從Spidering的基本概念、工具、以及道德介紹起,接著說明如何從資料庫取得媒體檔案與資料,接著是資料的解譯與轉換,以供其他用途使用。這本書共有100個關於Spider的實用技巧和想法,可以幫助我們將Spidering運用得爐火純青。如果你對Web資料的收集與運用感興趣,你需要這本書。本書有許多有趣且實用的範例,閱讀本書的時候,你可能會因此被激發許多的想法,於是急急忙忙地去打開電腦,準備做幾個實驗。

通訊協定和剖析器是Spider的兩大基本技術
這本書的範例和工具幾乎全都是使用Perl語言(有一小部分的PHP和Java),這是因為Perl語言特性很適合寫這類程式。目前大多數的Spider程式,幾乎都是用Perl或Python寫的,例如Google的搜尋引擎就是用Python開發的。如果你想學習Perl,建議閱讀《Perl程式設計第三版》或者《Perl學習手冊第三版》。

如果你不懂也不想學Perl,你依然可以「稍微費勁地」看懂這些程式,並改用你習慣的語言來實作,不見得要用Perl。我自己就是不是用Perl,而是使用REBOL來寫Spider程式的。我也推薦你用REBOL來寫Spider,因為REBOL對於通訊協定和Parser的支援都非常棒,而對於通訊協定和Parser(剖析器)支援的良窳,會大大地影響Spider實作的難易。

網頁資料收集回來之後,麻煩才真正開始。資料的處理與整合是一件很棘手的事,你需要寫Parser程式,才能對這些網頁進行後續的處理,本書對此著墨並不多。

寫Parser是一門大學問,幸好現在許多語言都支援Regular Expression,可以利用Regular Expression來剖析資料。如果你需要學習Regular Expression,建議你閱讀《正規式速查手冊》以及經典好書《Mastering Regular Expressions, Second Edition》。

另外,你可能也會想知道HTML的語法,以及HTTP通訊協定,我建議閱讀《HTML & XHTML大全第五版》以及《HTTP: The Definitive Guide》。以後隨著RSS甚至語意網路(Semantic Web)的流行,Spider的Parser會更容易寫,這會讓Spider的應用更廣泛。

網路上流傳許多Spider,可以直接下載回來使用。如果你會寫程式,你也可以為自己量身打造幾隻Spider。在無數個夜晚,當我沈睡在香甜的好夢之際,我的蜘蛛正在Web上攀爬,辛苦地幫我整理資料。而當我一覺醒來時,Spider已經完成任務了。真好!

《作者簡介》蔡學鏞
清華大學資訊工程碩士,曾任華碩集團軟體工程師、元智大學資訊系講師,現為寰震科技技術經理、美商歐萊禮出版社顧問、臺灣微軟特約的專欄作家。
蔡學鏞曾擔任數個研討會講師(包括 JavaTwo、TechEd、資策會)。參與設計清華大學 Java VOD 系統,該系統並獲得第一屆 Java Cup 比賽校園組冠軍。參與設計 Java To .NET Migration,成為美國微軟十大成功案例之一。
蔡先生著譯有數本 Java 書籍,並在臺灣和中國的雜誌開闢技術專欄,專長的語言為 C#、REBOL、Java、C/C++。他的電子郵件信箱 xy.cai@msa.hinet.net

熱門新聞

Advertisement