王曉楠,李 楊,張海峰,張 宇,楊雪峰
(1.黑龍江省農業科學院農業遙感與信息研究所,黑龍江 哈爾濱 150086;2.黑龍江省農業科學院作物資源研究所,黑龍江 哈爾濱 150086)
關鍵字:爬蟲;分布式;Nutch框架;二級哈希
隨著中國經濟的快速發展,現代化農業也在不斷地進步和發展,高科技在農業領域中的投入也隨之加大,目標就是轉變傳統農業的生產模式。通過抓取農業生產數據,將更好的種植數據提供給廣大農業工作人員,對于解決現代農業種植過程中的問題非常有利。
網絡爬蟲主要是通過采集網絡中特定信息為后續工作提供精確的數據,因此,該論文運用垂直搜索引擎獲取數據。為了更好的完成網絡爬取任務,收集到更多符合條件的網頁信息,運用主從分布式架構方式來實現對農作物生長信息數據的爬取,主從分布式架構主要包括了分節點的工作狀態和監控以及URL的分發工作等,分節點獲得主節點分發的調度任務以后,完成調度任務中的爬取工作,并且將爬取結果反饋給主節點。爬蟲網絡的主從結構,如圖1所示。
在分布式網絡結構中,計算機并行化處理很關鍵,該論文運用Nutch框架實現分布式網絡爬蟲。在農作物生長信息數據爬取的過程中,主節點將所有帶URL下載任務分配給不同的分節點進行爬取。論文設計分布式下載任務調度中,將URL映射到服務器上來完成下載的任務,計算公式如下:

分布式網絡伸縮性非常強,因此,只要節點數量發生變化,就會導致對數據二次爬取,Nutch系統運用集中式分割方法解決上述的問題主要是通過構建哈希函數來完成劃分任務的工作。首先構造Hash函數,第一次計算獲得新的URL,并將其映射到表A中;接下來對表A進行哈希映射,并將映射后的結果值劃分給分節點中。
為了提高爬取的效率,降低主題爬蟲的工作量,最有效的方式將URL的數目過濾和限定。所有的URL過濾規則,都是在conf文件目錄下,進行參數配置和過濾規則的設計,而非在源代碼中直接進行修改;接下來調取過濾規則,則是需要調用URLFilter子類下的getConf()函數,流程如圖2所示,通過上述方式就能夠更加便捷地實現過濾規則的修改。

圖2 URL 種子抓取
農作物生長信息數據的主題爬取,不僅要通過URL種子的限定和過濾,還要判斷主題的內容。所有網絡爬取后獲得URL列表注入以后,此時parse Text文該文件就會自動生成,相關性判斷是基于parse Text文件采用向量模型來實現的,將任意的網頁信息都定義為空間向量,其中表示當前網頁的關鍵詞,表示關鍵詞的權重,則兩個向量間的相關性采用余弦值表示:

通過定義信息抽取模板,就能夠實現大部分類型網頁的提取,再將 HTMLPsrser解析庫加載,將提取到的多種類型網頁編寫為相對應的頁面進行解析方法,從特定的文件中提取到農作物生長信息數據以后,匹配URL,調用相對應的解析模板,完成相關網頁的解析工作。具體的流程如下:
(1)構建解析網頁信息模板,將不同類型的網頁信息分類以后,編寫相對應的解析信息模板;
(2)將下載的URL與模板信息庫進行匹配,此時將信息URL種子注入以后,通過對比和分析以后,匹配對應的解析模板;
(3)抽取解析后網頁中的信息,并在特定的文件中存儲所有的文本信息。
相關網絡爬蟲模板和信息提取流程完成以后,接下來就是優化測試分布式網絡爬蟲的性能,以此來驗證其是否具備一定的優勢。該論文通過對比,分析分布式爬蟲網絡和單機網絡爬蟲的數量和時間性能。
首先,闡述分布式網絡爬蟲結構的軟硬件,如表1、表2所示。

表1 計算機軟件配置

表2 集群配置
通過測試,分布式爬取和單機采集數據量在規定的時間內進行統計,具體如表3所示,記錄了不同時間段爬蟲抓取獲得的信息量。

表3 采取數據量統計表

圖4 統計對比圖
通過分析可以知道,當時間段比較小時,分布式爬取數量并沒有太大的差異。隨著時間的增長和數據量遞增以后,分布式網絡爬取能夠將更大的數據信息量獲得。
在大數據時代,為了更好的完成網絡爬取任務,收集到更多符合條件的網頁信息,該論文運用了分布式網絡爬蟲技術。在分布式集群中,各個計算機都是并行執行的,這就會涉及到資源調配問題,因此,當網絡規模擴大到一定程度以后,集中式分割方式會導致整體運行速率降低等相關問題,研究表明,運用二級哈希算法來解決該問題,可使整體的負載均衡效率更好,提高數據采集效率。