999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Heritrix主題爬蟲設計

2016-12-13 05:55:01張亞鳳鄭山紅
長春工業(yè)大學學報 2016年5期
關(guān)鍵詞:搜索引擎

張亞鳳,鄭山紅

(長春工業(yè)大學 計算機科學與工程學院,吉林 長春 130012)

?

Heritrix主題爬蟲設計

張亞鳳,鄭山紅*

(長春工業(yè)大學 計算機科學與工程學院,吉林 長春 130012)

通過擴展Heritrix相應組件來抓取特定網(wǎng)頁,實現(xiàn)預定的抓取策略,并加入APHash算法對URL進行散列,達到了多線程抓取網(wǎng)頁的目的,極大地提高了抓取數(shù)據(jù)的效率。

垂直搜索引擎;主題爬蟲;Heritrix;APHash算法

0 引 言

近年來,現(xiàn)代信息技術(shù)和網(wǎng)絡技術(shù)正以驚人的速度發(fā)展,Internet網(wǎng)絡上的數(shù)據(jù)也呈指數(shù)級趨勢增加。全球前幾年網(wǎng)絡搜索引擎僅僅包括幾千萬頁的網(wǎng)頁量,但現(xiàn)在它已經(jīng)達到了驚人的數(shù)十億頁。數(shù)量的迅速增加帶來了搜索服務的效率嚴重下降,查詢的結(jié)果集也是大規(guī)模的,常常數(shù)以十萬筆的數(shù)據(jù),這些結(jié)果集里有大量冗余和無用信息,很難找到符合用戶自身需求的信息。因此,需要改進現(xiàn)有的一般搜索引擎技術(shù),垂直搜索引擎便在此時應運而生。

垂直搜索引擎是專門給某一特定領域、某一特定人群或某一特定需求提供的有一定價值的信息和有關(guān)服務。“專、精、深”是其顯著的特點,且行業(yè)色彩鮮明[1]。它不同于一般的通用搜索引擎,無論是用于專業(yè)知識的查詢,或是解決日常生活中的資訊,它的專業(yè)性是很清楚的,此時,通用搜索引擎不能實現(xiàn)快速且準確的檢索,尤其是對專業(yè)知識或?qū)W科的某些區(qū)域,這些弊端比比皆是。因此,人們傾向于使用個性化、專業(yè)化的垂直搜索來找到您所需要的信息。

主題爬蟲是垂直搜索引擎服務的關(guān)鍵技術(shù)和核心部分,它的優(yōu)劣直接影響用戶對所得信息的滿意度,它將網(wǎng)頁采集到本地服務器后,對該網(wǎng)頁的主題相關(guān)度值進行計算,較低的將不被進一步處理而被丟棄[2]。優(yōu)先搜集主題相關(guān)度高的網(wǎng)頁是垂直搜索引擎一個顯著的特點,在盡少耗費網(wǎng)絡流量的情況下,盡可能地多發(fā)現(xiàn)、采集主題相關(guān)度高的網(wǎng)頁。

1 Heritrix的架構(gòu)及工作流程

1.1 Heritrix簡介

Heritrix是一個完全開源的、由Java開發(fā)的優(yōu)秀的可擴展的Web網(wǎng)絡爬蟲項目,它采用了模塊化的設計,主要由一些核心類和插件模塊組成。開發(fā)者可以利用Heritrix優(yōu)良的可擴展性對它的插件模塊進行擴展,來實現(xiàn)自己預期的抓取邏輯[3]。

1.2 Heritrix系統(tǒng)結(jié)構(gòu)

Heritrix的系統(tǒng)框架如圖1所示。

圖1 Heritrix的系統(tǒng)框架

其主要模塊及功能如下:

1)CrawlOrde:抓取任務的配置,它是抓取任務的起點,默認情況下通過配置order.xml文件對起始Urls、線程數(shù)等信息進行配置。

2)CrawlController:抓取的核心程序,控制著每次抓取工作的開始和結(jié)束。

3)Frontier:鏈接制造工廠,也可以把它當作一個調(diào)度器,首先提供了特定算法去處理網(wǎng)頁中的URL地址,然后把處理后的地址送給處理線程,進行后續(xù)操作。

4)ToeThreads:這組線程才是實際的工作線程,每個線程處理一個URL,它們實現(xiàn)URL的爬行操作和一系列的后續(xù)操作,具體流程如圖2所示。

2 面向特定主題的主題爬蟲設計

2.1 為Heritrix定制自己的QueueAssignmentPolicy

Heritrix采用Berkeley DB建立鏈接隊列。這些隊列放置在BdbMultipleWorkQueues中時,總是先賦予一個Key,然后再把那些鏈接鍵值相同的放在一起,成為一個Queue(隊列)[4]。在Heritrix中,是它的queue-assignment-policy為每個隊列賦上Key值。Heritrix默認使用的queue-assignment-policy是HostnameQueueAssignmentPolicy,它繼承QueueAssignmentPolicy抽象類,主要負責隊列的分配策略。正像其名稱所暗示的那樣,它與Host名值來解決這個問題。換言之,也就是所有的相同的URL的Host名會被放置在同一隊列的中間。

圖2 heritrix處理一個url的流程

HostnameQueueAssignmentPolicy存在這樣一個缺陷,對某個具體站點的網(wǎng)頁抓取時,某一個隊列的長度會出現(xiàn)極度長的現(xiàn)象,有的則是在排隊等待中幾乎是閑置的,這樣就造成多線程抓取的效率極其低下。文中實驗抓取對象為新方向體育用品購物網(wǎng)站,通過自定義QueueAssignmentPolicy來解決這個缺陷,這樣也就改變了Key值的生成方式,從而所有的URL能夠比較平均地散列到不同的隊列中,從而改善了抓取效率。

在Heritrix中擴展queue-assignment-policy,通過繼承包org.archive.crawler.frontier下的QueueAssignmentPolicy類,重寫其getClassKey()方法。此方法先處理一個連接對象,再使用散列算法生成一個Key值,最后把相同Key值的鏈接放置在同一個隊列[5]。常用字符串哈希算法有BKDRHash,APHash,DJBHash,JSHash,ELFHash,PJWHash等,文中使用APHash算法生成Key值。自定義的APHashQueueAssignmentPolicy類的關(guān)鍵代碼如下:

public class APHashQueueAssignmentPolicy extends QueueAssignmentPolicy {

@Override

public String getClassKey(CrawlController controller,CandidateURI cauri) {

eturn this.APHash(cauri.getUURI().toString(),50) + "";

}

/**

* APHash算法

*/

public long APHash(String str,int number) {

long hash = 0;

for(int i = 0; i < str.length(); i++) {

hash ^= ((i & 1) == 0) ? ( (hash << 7) ^ str.charAt(i) ^ (hash >> 3)) :(~((hash << 11) ^ str.charAt(i) ^ (hash >> 5)));

}

long result = hash % number; //模number,即對應的線程數(shù)

return result;

}

}

還得通過配置APHashQueueAssignmentPolicy類才能正常工作,才能用來生成Key值。配置成功后,使用Heritrix抓取網(wǎng)頁的時候,Heritrix就變成默認使用APHashQueueAssignmentPolicy來分配鏈接隊列了。

2.2 擴展FrontierScheduler

Heritrix默認使用FrontierScheduler來抓取網(wǎng)頁,它不能實現(xiàn)對特定網(wǎng)頁內(nèi)容進行抓取[6-7],因此,需要對FrontierScheduler進行擴展,才能使抓取策略控制在新方向體育網(wǎng)站下的體育用品。在MyHeritrix項目的包org.archive.crawler.postprocessor下新建類FrontierSchedulerForXfxty,它繼承FrontierScheduler類,重寫父類的schedule()方法,只有符合特定的URL才會加入到等待隊列中。關(guān)鍵實現(xiàn)代碼如下:

protected void schedule(CandidateURI caUri) {

String uri = caUri.toString();

//只抓取包含"xfx-ty"和"product"的URL,控制抓取范圍在www.xfx-ty.com域名下且包含體育用品的URL

if(uri.contains("xfx-ty") && uri.contains("product")) {

getController().getFrontier().schedule(caUri);

}

}

3 實 驗

本次實驗開發(fā)環(huán)境使用MyEclipse 8.6開發(fā)工具,JDK 1.6和Heritrix 1.14.4平臺進行開發(fā);機器配置為:Win7系統(tǒng),內(nèi)存4 G,酷睿2.5 GHz,500 G硬盤,10/100 M以太網(wǎng)。

擴展后的Heritrix運行中的截圖如圖3所示。

圖3 擴展后的Heritrix運行狀態(tài)

圖中顯示的50個線程只有12個處在工作狀態(tài),這是由于只設置了一個種子地址,這也說明了加入APHash散列算法后,Heritrix可以更好地支持多線程,從而很大程度上提高了抓取效率。

抓取的部分體育用品頁面截圖如圖4所示。

圖4 抓取的部分體育用品頁面

這些頁面是使用php寫的,頁面中包含了具體體育用品的詳細信息。

4 結(jié) 語

對于垂直搜索引擎,主題爬蟲采集信息的效

率起著決定性的作用。垂直搜索引擎中只有加入設計優(yōu)良的主題爬蟲,才能提高查全率和準確率,才能給用戶帶來更優(yōu)質(zhì)的服務。開發(fā)者可以利用Heritrix其優(yōu)良的可擴展性來擴展它的相應組件,實現(xiàn)自己期望的爬行策略[8]。

通過加入APHash散列算法擴展Heritrix中默認的QueueAssignmentPolicy策略,實現(xiàn)了在同一主機域名站點下的多線程抓取網(wǎng)頁信息,極大地提高了采集信息的效率。

[1] 邵溫.垂直搜索引擎技術(shù)的研究和應用[D].北京:北京工業(yè)大學,2009.

[2] 陳叢叢.主題爬蟲搜索策略研究[D].濟南:山東大學,2009.

[3] 東興.垂直搜索引擎關(guān)鍵技術(shù)研究[D].杭州:浙江理工大學,2012.

[4] 朱敏,羅省賢.基于Heritrix的面向特定主題的聚焦爬蟲研究[J].計算機技術(shù)與發(fā)展,2012(2):65-68.

[5] 劉育蓮.手機產(chǎn)品垂直搜索引擎的設計與實現(xiàn)[D].西安:西安電子科技大學,2012.

[6] 劉高軍,夏景隆.基于Heritrix的網(wǎng)絡爬蟲研究與應用[J].軟件導刊,2013(5):123-125.

[7] 白萬民,蘇希樂.Heritrix在垂直搜索引擎中的應用[J].計算機時代,2011(9):7-9.

[8] 孔祥春,李義杰,鄭凱明.垂直搜索引擎應用研究[J].計算機系統(tǒng)應用,2009(7):150-152.

Heritrix based theme crawler design

ZHANG Yafeng,ZHENG Shanhong*

(School of Computer Science & Engineering,Changchun University of Technology,Changchun 130012,China)

By extending related components of Heritrix to crawl a specific page,some predetermined crawling strategies can be realized. The APHash algorithm is introduced to hash the URL for multi-threaded web page crawling,so the efficiency of data capture is improved.

vertical search engine; theme crawler; Heritrix; APHash algorithm.

2016-03-01

張亞鳳(1990-),男,漢族,河南平頂山人,長春工業(yè)大學碩士研究生,主要從事信息檢索及搜索引擎方向研究,E-mail:fengyuzhe320@163.com. *通訊作者:鄭山紅(1970-),女,朝鮮族,吉林長春人,長春工業(yè)大學副教授,博士,主要從事智能系統(tǒng)與語義網(wǎng)方向研究,E-mail:1668277288@qq.com.

10.15923/j.cnki.cn22-1382/t.2016.5.19

TP 31

A

1674-1374(2016)05-0507-05

猜你喜歡
搜索引擎
Chrome 99 Canary恢復可移除預置搜索引擎選項
網(wǎng)絡搜索引擎亟待規(guī)范
Nutch搜索引擎在網(wǎng)絡輿情管控中的應用
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
基于Lucene搜索引擎的研究
知識漫畫
百科知識(2012年11期)2012-04-29 08:30:15
一種自反饋式元搜索系統(tǒng)的設計
搜索引擎,不止有百度與谷歌
搜索,也要“深搜熟濾”
主站蜘蛛池模板: 日本午夜精品一本在线观看| 亚洲无线一二三四区男男| 亚洲色成人www在线观看| 国产熟女一级毛片| 国产人妖视频一区在线观看| 欧美va亚洲va香蕉在线| 色综合综合网| 色综合成人| 中文天堂在线视频| 欧美精品高清| 国产色伊人| 中字无码精油按摩中出视频| 99热这里只有精品国产99| 色偷偷男人的天堂亚洲av| 国产成人高清精品免费| www.91中文字幕| 九一九色国产| 欧美成人午夜在线全部免费| 免费无码网站| 国产一区免费在线观看| 55夜色66夜色国产精品视频| 亚洲小视频网站| 亚洲第一成网站| 亚洲视频三级| 色九九视频| 精品国产香蕉伊思人在线| 久久人妻xunleige无码| 狠狠色综合久久狠狠色综合| 91娇喘视频| 国产精品无码久久久久久| 国产精品主播| 国产精品免费入口视频| 精品人妻一区无码视频| 午夜色综合| 在线播放真实国产乱子伦| 91午夜福利在线观看| 中文字幕无码中文字幕有码在线 | 精品国产网| 久爱午夜精品免费视频| 日韩午夜福利在线观看| 国产午夜一级淫片| 亚洲综合色区在线播放2019| 在线中文字幕日韩| 日韩高清一区 | 人妻中文字幕无码久久一区| 亚洲精品在线观看91| 欧美亚洲国产一区| 日韩午夜片| 91无码视频在线观看| 国产午夜在线观看视频| 欧洲亚洲欧美国产日本高清| 尤物国产在线| 88av在线| 国产三级韩国三级理| 刘亦菲一区二区在线观看| 日本免费一级视频| 国产日韩欧美精品区性色| 国产成人精品亚洲77美色| 国产精品区视频中文字幕| 日a本亚洲中文在线观看| 九九九国产| 中文字幕亚洲第一| 国产免费人成视频网| 麻豆国产在线观看一区二区| 国产jizzjizz视频| 久久久久人妻一区精品| 国产区免费精品视频| 欧美一区二区三区欧美日韩亚洲| 自拍偷拍一区| 国内老司机精品视频在线播出| 亚洲综合色吧| 真实国产乱子伦高清| 韩日午夜在线资源一区二区| 手机在线国产精品| 18黑白丝水手服自慰喷水网站| 国产大片喷水在线在线视频| 国产成人啪视频一区二区三区| 亚洲精品无码不卡在线播放| 97视频在线精品国自产拍| 国产久操视频| 制服丝袜 91视频| 又猛又黄又爽无遮挡的视频网站|