李慧,胡輝,莊冬梅
(惠州學院計算機科學系,惠州 516007)
農產品供需對接系統中主題網絡爬蟲的設計與實現
李慧,胡輝,莊冬梅
(惠州學院計算機科學系,惠州 516007)
介紹主題網絡爬蟲的工作原理,結合其功能,提出農產品供需對接系統中主題網絡爬蟲的設計模塊,并對各個模塊的設計及功能進行分析,對該系統的主題網絡爬蟲進行具體實現。當該系統的有效帖子數量低于某個閾值時,主題網絡爬蟲可以從其他同類網站抓取相關的信息,并建立索引,使該系統能更好地向用戶進行推薦,讓用戶獲得有用的信息。
農產品供需對接系統;主題網絡爬蟲;信息采集
農產品供需對接系統是一款專門針對農民和農產品設計開發的系統平臺,與其他在線交易平臺不同的是,該系統能實現供需關系的自動連接,以及對供需用戶的推薦功能,讓需要賣商品的用戶找到對應的賣家信息,需要買商品的用戶獲得供應信息。該系統主要分三部分實現:用戶以及管理者與數據庫的交互、數據庫與索引器的交互、網絡爬蟲與數據庫的交互。在網絡爬蟲與數據庫交互的實現過程中,本文針對農產品供需對接系統的特點,結合網絡爬蟲工作原理,設計出適合該系統的主題網絡爬蟲。當該系統的有效帖子數量低于某個閾值時,主題網絡爬蟲可以從其他同類網站抓取相關的信息,并建立索引,使該系統能更好地向用戶進行推薦,讓用戶獲得有用的信息。
1999年Chakrabarti首先提出主題網絡爬蟲這個概念[1],隨著人們對信息搜索需求的增加,以及主題網絡爬蟲在信息采集和數據挖掘方面的突出優勢,使得越來越多的人來研究主題網絡爬蟲[2]。主題網絡爬蟲是基于HTTP協議自動獲取和主題相關網頁的應用程序,該程序啟動前,先要確定爬取的主題內容,啟動程序后,對爬取到的網頁內容進行分析,如果該網頁內容與已設定的主題內容相關就進行爬取,否則就丟棄該網頁。
主題網絡爬蟲與通用網絡爬蟲不一樣,它在爬取網頁時,并不是爬取所有網頁,而是針對設定好的主題對網頁內容進行有選擇地爬取,這樣不僅降低信息采集的難度,而且還提高了網頁的質量。
主題網絡爬蟲程序具體工作流程如圖1所示。首先從初始化種子網頁開始,通過這個網頁的鏈接去獲取其他頁面,提取其中的鏈接插入到URL隊列中進行分析,同時分析網頁文本信息,根據主題相關性計算出要訪問的頁面內容和主題的相關度,得出的結果與設定閾值相比較,小于閾值則丟棄,大于閾值則繼續爬取,并將符合條件的網頁存儲到網頁庫中[3]。
主題網絡爬蟲是農產品供需對接系統的重要部分,它可以高效、快捷地爬取農產品供需信息,方便系統快速推薦給用戶,其結構設計如圖2所示。

圖1 主題網絡爬蟲流程圖

圖2 主題網絡爬蟲模塊結構圖
2.1 初始種子模塊
主題網絡爬蟲是根據某一特定主題進行網頁自動爬取的程序,所以在初始種子模塊中,要選擇與設定主題內容一致的網頁作為初始頁面,以該網頁的URL作為頁面爬行模塊的入口地址,這樣可以提高爬取網頁的準確性。例如,符合該系統選擇的主題是農產品供需信息,那么初始種子就選擇農產品交易網站首頁。
2.2 主題確定模塊
主題網絡爬蟲模塊結構中,主題確定模塊是工作基礎,因為程序啟動后,爬取的網頁是與主題密切相關的。
該模塊首先統計初始種子網頁的關鍵詞,通過人工設置給各關鍵詞賦予相應的權值,用來確定主題。然后,根據這些權值搜索出與之相應的網頁[4]。最后,把符合要求的網頁組成網頁集合,由機器進行再次提取,這樣爬取出的網頁與主題內容更加吻合,準確性更高。
2.3 相關度分析模塊
主題網絡爬蟲模塊結構中,相關度分析模塊是最主要的模塊。該模塊把網頁的主題相關度作為篩選頁面的一個重要的衡量標準,利用爬蟲程序處理掉不相關的網頁,避免進行無用爬取,降低準確率[5]。該模塊在進行分析前,先要設定一個閾值,再把爬取到的網頁進行相關度分析計算,然后把計算出的結果與已設定的閾值進行比較,如果結果值大于閾值,表示爬取的網頁與主題相關,如果結果值小于閾值,表示爬取的網頁與主題無關[6]。
2.4 頁面過濾模塊
爬取的網頁經過相關度計算后,進入頁面過濾模塊進行過濾。主題相關度大于閾值的網頁就會被保存到網頁庫中,小于閾值的網頁被丟棄,使得網頁庫有足夠的存儲空間存放與主題相關度較高的網頁[7]。
農產品供需對接系統中主題網絡爬蟲爬取網頁的流程圖如圖3所示。

圖3 爬取網頁流程圖
該系統中的主題網絡爬蟲采用寬度優先的方法,網頁抓取過程從一系列的種子節點開始,把這些網頁中的“子節點”(超鏈接)提取出來,放入隊列中依次順序進行抓取,被處理過的鏈接需要放入一個表內(通常為visited表)。每次新處理一個鏈接之前,需要查看這個鏈接是否已經在了這個visited表內,如果存在,則證明鏈接已經處理過,跳過不做處理,否則進行下一步處理。
對不同的網頁,要抽取其中的有用的信息,需要編寫特定的內容抽取器,如圖4所示。抽取正文在網絡爬蟲程序中具有重要意義,如果不能很好地提取文章網頁的有效內容,那么抓下來的網頁就根本沒有利用價值。抽取的方法有很多種,如配置模板、視覺匹配、關鍵字識別等。在本系統中,由于是定向抓取幾個網站的信息,因此采用了基于配置模板的內容解析方法,為每個網站配置一個模板來抽取其中的供給和需求信息,然后寫入數據庫,再由索引器構建索引。

圖4 抽取器抽取網頁特定信息示意圖
圖5為中國農產品交易網的一個供應信息,該網頁的URL和框出的部分是主題網絡爬蟲要抽取的內容,然后包裝成一條記錄,插入到數據庫中,由索引器構建索引。解析HTML文檔的工作量相當大,本系統采用JTidy解析器。JTidy是由Andy Quick編寫的Tidy解析器的Java版本,能較好地解決本系統HTML提取問題。

圖5 供應信息
本文結合農產品供需對接系統中對主題網絡爬蟲的功能需求,提出設計模塊,并指出在整個主題網絡爬蟲設計中最關鍵的部分是計算網頁文本與主題的相關度。最后對該系統的主題網絡爬蟲進行具體實現,反映效果良好,可為同類應用提供借鑒。
[1] Chakrabarti S,Van den Berg M,Dom B.Focused Crawling:a New Approach to Topic-Specific Web Resource Discovery[J].Computer Networks,1999,31(11):1623~1640
[2] 王賢明.主題爬出研究進展[J].現代計算機,2014(1):33~36
[3] 魏晶晶,楊定達,廖祥文.基于網頁內容相似度改進算法的主題網絡爬蟲[J].計算機與現代化,2011(9):1~4
[4] 林子皓.主題爬蟲的設計與實現[J].計算機技術與發展,2014(8):99~102,107
[5] 鄧岳貴.啟發式搜索在網絡爬蟲中應用的分析[J].軟件導報,2008,7(2):80~82
[6] 方星星,魯磊紀,徐洋等.網絡輿情監控系統中主題網絡爬蟲的研究與實現[J].艦船電子工程,2014(9):104~107
[7] 史寶明,賀元香,吳崇正等.主題搜索引擎中爬蟲搜索策略的研究[J].計算機工程與應用,2014(9):116~128
Design and Implementation of Topic Crawler in the Agricultural Products Supply System
LI Hui,HU Hui,ZHUANG Dong-mei
(Computer Science Department,Huizhou University,Huizhou 516007)
Introduces the working principle of topic crawler and with the function of it,puts forward the design of topic crawler in the agricultural product supply and demand docking system module and analyzes the design and function of each module.Achieves the concrete implementation of the topic Web crawler in the system.When the number of effective post topic in the system is below to a certain threshold, Web crawler can crawl other similar sites and fetch relevant information and establish index at the aim of making the system better recommended to the user and allowing the user obtain useful information.
Agricultural Products Supply System;Topic Crawler;Information Collection
1007-1423(2015)04-0062-04
10.3969/j.issn.1007-1423.2015.04.017
李慧(1978-),女,浙江臺州人,碩士研究生,講師,研究方向為計算機應用、信息安全
胡輝(1979-),女,江蘇鹽城人,碩士研究生,講師,研究方向為計算機應用、計算機軟件
2014-12-23
2015-01-07
2013年惠州市科技計劃項目(No.2013w12、No.2013w20、No.2013w22)、2012年惠州學院校級項目(No.2012QN10)
莊冬梅(1977-),女,江西吉安人,本科,工程師,研究方向為計算機應用與網絡技術