彭 軻 廖聞劍
[摘要]主要描述支持基于瀏覽器服務的爬蟲的大體實現方式,并進行相關測試。
[關鍵詞]網絡爬蟲 Javascript Ajax 瀏覽器服務
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0220050-01
一、引言
在這個信息爆炸的時代,從網絡上尋找自己所需要的信息越來越離不開搜索引擎,這種快捷而便利的方式已越來越受人青睞,而Baidu,Google,Yahoo等搜索引擎的成功標志著搜索引擎已不再是IT人士才懂的專有名詞。搜索引擎帶給我們的龐大的信息量和便捷的操作使得復雜的互聯網高維網狀結構簡化為平面,平面的中心是信息的使用者,各種信息觸手可及。
隨著時代的變遷,技術的進步,現今的頁面展現技術已呈多種多樣的方向發展,最顯著的進步AJAX技術的問世將傳統的同步式頁面,轉變為異步式頁面。給用戶帶來了桌面式的網頁體驗。
人們不再像過去只能面對整體刷新的同步頁面,使得網上遨游更輕松,隨意。但同時這一技術給搜索引擎帶來了巨大的挑戰。異步頁面,事件觸發的模式使得傳統的搜索引擎前端(即網絡爬蟲)無法獲取到全部的網頁信息。于是對JSCrawler或AjaxCrawler的研究逐漸熱門起來。
大多數的AjaxCrawler通過包含JS解析器來實現對Javascript代碼的解析,執行等工作,邏輯復雜,代碼量大。且重復了許多前人的工作。
介于DOM解析,JS解析與執行是瀏覽器工作的一部分,于是本文采用直接在后臺調用瀏覽器的方法完成相關的解析工作。
二、總體設計方案
一般的JSCrawler通過提取出Javascript代碼,運用js解析模塊解析,執行,實際上是對瀏覽器解析工作的裁減,而且在構建DOM對象時不但工作量龐大而且還存在很多的隱患,適用范圍比較窄。與其提取或者重寫瀏覽器的某項功能,何不直接將瀏覽器作為網絡爬蟲的服務器,讓其解析出頁面中的URIs交付給爬蟲系統進行相關提取工作。而本系統就是基于這個思想設計的。如圖1為該模型的總體設計方案。

通過將URL傳遞給BrowseServer獲取初始頁面,接著有BrowseServer
分析處理頁面準中的代碼,找到頁面中各個鏈接對應的位置,然后通過模擬點擊操作由BrowseServer生成Http post方法,獲取下層或異步傳遞的頁面。
三、網頁分析流程
由于有了瀏覽器這個強大的解析工具,網頁分析不再是難題。瀏覽器分析網頁,解析AJAX代碼。生成相應的DOM對象及對應的URL鏈接。我們從腳本輸出流中提取相應鏈接,獲取頁面數據即可完成爬取工作。
模塊流程圖如圖2:
四、運行測試
如圖2是使用IEServerCrawler爬取網頁某個js網站(www.qolin.com)的測試,為方便后面進行對比,因此本系統采用單線程。系統環境為:
CPU:P4 3.02G
系統環境:WindowXE
運行環境:Eclipse6.0
網絡環境:電信10M ADSL
對于普通網站即含有JS代碼較少的網站(www.baidu.com)測試結果如表1:
對于JS網站即含有JS代碼較多的網站(qolin.com)測試結果如表2:
對于BrowserServerCrawler我們可以看到不管是普通網站還是大型的JS網站,都有不錯的抓取性能。特別是在JS代碼較多的網站上表現出了超過普通爬蟲的優勢。但抓取時間的劣勢上卻也同樣是顯著的。
五、結束語
使用IE作為服務器的設計具有強大的JS解析能力能解決單純的JS解析帶來的解析能力單一的問題,但由于啟動IE服務的耗時,IE解析中包含了太多頁面展示方面的解析問題,使得基于IE服務的網絡爬蟲在抓取速度上略有遜色。原因在于瀏覽器的啟動,解析與獲取鏈接無關的信息方面耗費了大量的時間,同時處理普通頁面使用該系統存在極大的資源損耗,而普通頁面在網絡中依然占有較大的比例。如何設計一個在性能和效率上同時出色的AJAX爬蟲還有待我們繼續研究。
參考文獻:
[1]Lawrence S,Giles C L.Searching the world wide web.Seience.1998,280:98-100.
[2]Lin S H,Ho M J.Discovering informative content blocks from Web documents. Proceedings of the Eight ACM SIGKDD International Conference on knowledge Discovery and DataMining.2002.
[3]Najork M,Heydon A..High-performance Web Crawling.Compaq Systems Researeh Center.2001.
[4]ChoJ.Crawling the Web:Discovery and maintenance of large-scale Web data.Stanford University, doctoral dissertation,2002.
[5]ChoJ,Garcia一Molina H.The Evolution of the Web and Implications for an Incremental Crawler Proceedings of 26th Intemational Conference on Very Large Database(VLDB).
[6]謝正茂,Web數據模型以及獲取、存儲方法研究,北京大學,碩士論文.
[7]印鑒、陳憶群、張鋼,搜索引擎技術研究與發展,計算機工程,2005(7):54-56.
[8]賈紅英,網絡搜索引擎探析[J].情報資料工作,2002,3.
[9]李曉明、閏宏飛、王繼民,搜索引擎——原理、技術與系統,北京:科學出版社,2005:30-54.
[10]張興華,搜索引擎技術與研究[J].現代情報,2004,(4):142-145.
[11]邱誠,搜索引擎及其發展淺析[J].圖書館研究與工作,2002,(2):8-10.
作者簡介:
彭軻,男,漢,湖北武漢,碩士研究生,主要研究方向為通信軟件。