李慧,胡輝,莊冬梅
(惠州學(xué)院計算機科學(xué)系,惠州 516007)
農(nóng)產(chǎn)品供需對接系統(tǒng)中主題網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)
李慧,胡輝,莊冬梅
(惠州學(xué)院計算機科學(xué)系,惠州 516007)
介紹主題網(wǎng)絡(luò)爬蟲的工作原理,結(jié)合其功能,提出農(nóng)產(chǎn)品供需對接系統(tǒng)中主題網(wǎng)絡(luò)爬蟲的設(shè)計模塊,并對各個模塊的設(shè)計及功能進行分析,對該系統(tǒng)的主題網(wǎng)絡(luò)爬蟲進行具體實現(xiàn)。當(dāng)該系統(tǒng)的有效帖子數(shù)量低于某個閾值時,主題網(wǎng)絡(luò)爬蟲可以從其他同類網(wǎng)站抓取相關(guān)的信息,并建立索引,使該系統(tǒng)能更好地向用戶進行推薦,讓用戶獲得有用的信息。
農(nóng)產(chǎn)品供需對接系統(tǒng);主題網(wǎng)絡(luò)爬蟲;信息采集
農(nóng)產(chǎn)品供需對接系統(tǒng)是一款專門針對農(nóng)民和農(nóng)產(chǎn)品設(shè)計開發(fā)的系統(tǒng)平臺,與其他在線交易平臺不同的是,該系統(tǒng)能實現(xiàn)供需關(guān)系的自動連接,以及對供需用戶的推薦功能,讓需要賣商品的用戶找到對應(yīng)的賣家信息,需要買商品的用戶獲得供應(yīng)信息。該系統(tǒng)主要分三部分實現(xiàn):用戶以及管理者與數(shù)據(jù)庫的交互、數(shù)據(jù)庫與索引器的交互、網(wǎng)絡(luò)爬蟲與數(shù)據(jù)庫的交互。在網(wǎng)絡(luò)爬蟲與數(shù)據(jù)庫交互的實現(xiàn)過程中,本文針對農(nóng)產(chǎn)品供需對接系統(tǒng)的特點,結(jié)合網(wǎng)絡(luò)爬蟲工作原理,設(shè)計出適合該系統(tǒng)的主題網(wǎng)絡(luò)爬蟲。當(dāng)該系統(tǒng)的有效帖子數(shù)量低于某個閾值時,主題網(wǎng)絡(luò)爬蟲可以從其他同類網(wǎng)站抓取相關(guān)的信息,并建立索引,使該系統(tǒng)能更好地向用戶進行推薦,讓用戶獲得有用的信息。
1999年Chakrabarti首先提出主題網(wǎng)絡(luò)爬蟲這個概念[1],隨著人們對信息搜索需求的增加,以及主題網(wǎng)絡(luò)爬蟲在信息采集和數(shù)據(jù)挖掘方面的突出優(yōu)勢,使得越來越多的人來研究主題網(wǎng)絡(luò)爬蟲[2]。主題網(wǎng)絡(luò)爬蟲是基于HTTP協(xié)議自動獲取和主題相關(guān)網(wǎng)頁的應(yīng)用程序,該程序啟動前,先要確定爬取的主題內(nèi)容,啟動程序后,對爬取到的網(wǎng)頁內(nèi)容進行分析,如果該網(wǎng)頁內(nèi)容與已設(shè)定的主題內(nèi)容相關(guān)就進行爬取,否則就丟棄該網(wǎng)頁。
主題網(wǎng)絡(luò)爬蟲與通用網(wǎng)絡(luò)爬蟲不一樣,它在爬取網(wǎng)頁時,并不是爬取所有網(wǎng)頁,而是針對設(shè)定好的主題對網(wǎng)頁內(nèi)容進行有選擇地爬取,這樣不僅降低信息采集的難度,而且還提高了網(wǎng)頁的質(zhì)量。
主題網(wǎng)絡(luò)爬蟲程序具體工作流程如圖1所示。首先從初始化種子網(wǎng)頁開始,通過這個網(wǎng)頁的鏈接去獲取其他頁面,提取其中的鏈接插入到URL隊列中進行分析,同時分析網(wǎng)頁文本信息,根據(jù)主題相關(guān)性計算出要訪問的頁面內(nèi)容和主題的相關(guān)度,得出的結(jié)果與設(shè)定閾值相比較,小于閾值則丟棄,大于閾值則繼續(xù)爬取,并將符合條件的網(wǎng)頁存儲到網(wǎng)頁庫中[3]。
主題網(wǎng)絡(luò)爬蟲是農(nóng)產(chǎn)品供需對接系統(tǒng)的重要部分,它可以高效、快捷地爬取農(nóng)產(chǎn)品供需信息,方便系統(tǒng)快速推薦給用戶,其結(jié)構(gòu)設(shè)計如圖2所示。
圖1 主題網(wǎng)絡(luò)爬蟲流程圖
圖2 主題網(wǎng)絡(luò)爬蟲模塊結(jié)構(gòu)圖
2.1 初始種子模塊
主題網(wǎng)絡(luò)爬蟲是根據(jù)某一特定主題進行網(wǎng)頁自動爬取的程序,所以在初始種子模塊中,要選擇與設(shè)定主題內(nèi)容一致的網(wǎng)頁作為初始頁面,以該網(wǎng)頁的URL作為頁面爬行模塊的入口地址,這樣可以提高爬取網(wǎng)頁的準(zhǔn)確性。例如,符合該系統(tǒng)選擇的主題是農(nóng)產(chǎn)品供需信息,那么初始種子就選擇農(nóng)產(chǎn)品交易網(wǎng)站首頁。
2.2 主題確定模塊
主題網(wǎng)絡(luò)爬蟲模塊結(jié)構(gòu)中,主題確定模塊是工作基礎(chǔ),因為程序啟動后,爬取的網(wǎng)頁是與主題密切相關(guān)的。
該模塊首先統(tǒng)計初始種子網(wǎng)頁的關(guān)鍵詞,通過人工設(shè)置給各關(guān)鍵詞賦予相應(yīng)的權(quán)值,用來確定主題。然后,根據(jù)這些權(quán)值搜索出與之相應(yīng)的網(wǎng)頁[4]。最后,把符合要求的網(wǎng)頁組成網(wǎng)頁集合,由機器進行再次提取,這樣爬取出的網(wǎng)頁與主題內(nèi)容更加吻合,準(zhǔn)確性更高。
2.3 相關(guān)度分析模塊
主題網(wǎng)絡(luò)爬蟲模塊結(jié)構(gòu)中,相關(guān)度分析模塊是最主要的模塊。該模塊把網(wǎng)頁的主題相關(guān)度作為篩選頁面的一個重要的衡量標(biāo)準(zhǔn),利用爬蟲程序處理掉不相關(guān)的網(wǎng)頁,避免進行無用爬取,降低準(zhǔn)確率[5]。該模塊在進行分析前,先要設(shè)定一個閾值,再把爬取到的網(wǎng)頁進行相關(guān)度分析計算,然后把計算出的結(jié)果與已設(shè)定的閾值進行比較,如果結(jié)果值大于閾值,表示爬取的網(wǎng)頁與主題相關(guān),如果結(jié)果值小于閾值,表示爬取的網(wǎng)頁與主題無關(guān)[6]。
2.4 頁面過濾模塊
爬取的網(wǎng)頁經(jīng)過相關(guān)度計算后,進入頁面過濾模塊進行過濾。主題相關(guān)度大于閾值的網(wǎng)頁就會被保存到網(wǎng)頁庫中,小于閾值的網(wǎng)頁被丟棄,使得網(wǎng)頁庫有足夠的存儲空間存放與主題相關(guān)度較高的網(wǎng)頁[7]。
農(nóng)產(chǎn)品供需對接系統(tǒng)中主題網(wǎng)絡(luò)爬蟲爬取網(wǎng)頁的流程圖如圖3所示。
圖3 爬取網(wǎng)頁流程圖
該系統(tǒng)中的主題網(wǎng)絡(luò)爬蟲采用寬度優(yōu)先的方法,網(wǎng)頁抓取過程從一系列的種子節(jié)點開始,把這些網(wǎng)頁中的“子節(jié)點”(超鏈接)提取出來,放入隊列中依次順序進行抓取,被處理過的鏈接需要放入一個表內(nèi)(通常為visited表)。每次新處理一個鏈接之前,需要查看這個鏈接是否已經(jīng)在了這個visited表內(nèi),如果存在,則證明鏈接已經(jīng)處理過,跳過不做處理,否則進行下一步處理。
對不同的網(wǎng)頁,要抽取其中的有用的信息,需要編寫特定的內(nèi)容抽取器,如圖4所示。抽取正文在網(wǎng)絡(luò)爬蟲程序中具有重要意義,如果不能很好地提取文章網(wǎng)頁的有效內(nèi)容,那么抓下來的網(wǎng)頁就根本沒有利用價值。抽取的方法有很多種,如配置模板、視覺匹配、關(guān)鍵字識別等。在本系統(tǒng)中,由于是定向抓取幾個網(wǎng)站的信息,因此采用了基于配置模板的內(nèi)容解析方法,為每個網(wǎng)站配置一個模板來抽取其中的供給和需求信息,然后寫入數(shù)據(jù)庫,再由索引器構(gòu)建索引。
圖4 抽取器抽取網(wǎng)頁特定信息示意圖
圖5為中國農(nóng)產(chǎn)品交易網(wǎng)的一個供應(yīng)信息,該網(wǎng)頁的URL和框出的部分是主題網(wǎng)絡(luò)爬蟲要抽取的內(nèi)容,然后包裝成一條記錄,插入到數(shù)據(jù)庫中,由索引器構(gòu)建索引。解析HTML文檔的工作量相當(dāng)大,本系統(tǒng)采用JTidy解析器。JTidy是由Andy Quick編寫的Tidy解析器的Java版本,能較好地解決本系統(tǒng)HTML提取問題。
圖5 供應(yīng)信息
本文結(jié)合農(nóng)產(chǎn)品供需對接系統(tǒng)中對主題網(wǎng)絡(luò)爬蟲的功能需求,提出設(shè)計模塊,并指出在整個主題網(wǎng)絡(luò)爬蟲設(shè)計中最關(guān)鍵的部分是計算網(wǎng)頁文本與主題的相關(guān)度。最后對該系統(tǒng)的主題網(wǎng)絡(luò)爬蟲進行具體實現(xiàn),反映效果良好,可為同類應(yīng)用提供借鑒。
[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].現(xiàn)代計算機,2014(1):33~36
[3] 魏晶晶,楊定達(dá),廖祥文.基于網(wǎng)頁內(nèi)容相似度改進算法的主題網(wǎng)絡(luò)爬蟲[J].計算機與現(xiàn)代化,2011(9):1~4
[4] 林子皓.主題爬蟲的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2014(8):99~102,107
[5] 鄧岳貴.啟發(fā)式搜索在網(wǎng)絡(luò)爬蟲中應(yīng)用的分析[J].軟件導(dǎo)報,2008,7(2):80~82
[6] 方星星,魯磊紀(jì),徐洋等.網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)中主題網(wǎng)絡(luò)爬蟲的研究與實現(xiàn)[J].艦船電子工程,2014(9):104~107
[7] 史寶明,賀元香,吳崇正等.主題搜索引擎中爬蟲搜索策略的研究[J].計算機工程與應(yīng)用,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-),女,浙江臺州人,碩士研究生,講師,研究方向為計算機應(yīng)用、信息安全
胡輝(1979-),女,江蘇鹽城人,碩士研究生,講師,研究方向為計算機應(yīng)用、計算機軟件
2014-12-23
2015-01-07
2013年惠州市科技計劃項目(No.2013w12、No.2013w20、No.2013w22)、2012年惠州學(xué)院校級項目(No.2012QN10)
莊冬梅(1977-),女,江西吉安人,本科,工程師,研究方向為計算機應(yīng)用與網(wǎng)絡(luò)技術(shù)