亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于AJAX的深網(wǎng)爬蟲設(shè)計

        2017-11-07 06:11:08孫龍李彥
        現(xiàn)代計算機 2017年28期
        關(guān)鍵詞:爬蟲隊列網(wǎng)頁

        孫龍,李彥

        (1.四川大學(xué)計算機學(xué)院,成都 610065;2.四川大學(xué)制造學(xué)院,成都 610065)

        基于AJAX的深網(wǎng)爬蟲設(shè)計

        孫龍1,李彥2

        (1.四川大學(xué)計算機學(xué)院,成都 610065;2.四川大學(xué)制造學(xué)院,成都 610065)

        AJAX技術(shù)廣泛應(yīng)用在深網(wǎng)中,要實現(xiàn)對深網(wǎng)的AJAX頁面數(shù)據(jù)采集,爬蟲技術(shù)將面臨新的挑戰(zhàn)。在研究如何發(fā)現(xiàn)網(wǎng)頁中包含超鏈接標(biāo)簽、AJAX事件的爬取元素,并有效遍歷由事件觸發(fā)的AJAX響應(yīng)信息的基礎(chǔ)上,提出一種AJAX深網(wǎng)狀態(tài)模型,設(shè)計爬取算法。并通過實驗驗證該爬蟲模型能夠有效提升實現(xiàn)AJAX深網(wǎng)的爬取的覆蓋率。

        0 引言

        深網(wǎng)(Deep Web),也稱隱形網(wǎng)絡(luò)(Invisible Web),或隱藏網(wǎng)絡(luò)(Hidden Web),是萬維網(wǎng)的一部分,其內(nèi)容因種種原因無法被標(biāo)準(zhǔn)搜索引擎索引到。與深層網(wǎng)絡(luò)相反的術(shù)語是表層網(wǎng)絡(luò)。大量Web信息深埋于網(wǎng)站之下,傳統(tǒng)的搜索引擎無法尋找它們,發(fā)現(xiàn)它們,取回深網(wǎng)之中的內(nèi)容,被傳統(tǒng)搜索引擘索引的那部分只是表層網(wǎng)絡(luò)。無法測量和嚴(yán)格估計的深網(wǎng)的大小,因為大多數(shù)的信息被隱藏或鎖定在數(shù)據(jù)庫內(nèi)。早期的估算表明,深網(wǎng)的信息要比表層網(wǎng)絡(luò)大幾個數(shù)量級,深網(wǎng)是400倍至550倍大于表層網(wǎng),其大小約有7.5PB[1]。然而,由于不斷有更多的信息和網(wǎng)站被添加,可以估算深網(wǎng)應(yīng)是以指數(shù)級的數(shù)量成倍增長。隨著AJAX技術(shù)的不斷發(fā)展,越來越多的深網(wǎng)采取了這一技術(shù)。AJAX深網(wǎng)的爬取也逐漸成為學(xué)者研究的一個熱點。

        1 AJAX深網(wǎng)爬取

        網(wǎng)絡(luò)爬蟲也被稱作網(wǎng)絡(luò)蜘蛛[2],或自動網(wǎng)絡(luò)索引[3],是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。

        網(wǎng)絡(luò)爬蟲一般從一個URL列表中開始抓取,這個列表稱作種子。當(dāng)爬蟲讀取這些列表時,它會識別出URL列表中網(wǎng)頁所包含的超鏈接并將其添加到要爬取的隊列中,稱為爬取邊界。爬取邊界的URL會按照規(guī)定策略遞歸地進(jìn)行訪問。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據(jù)一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時停止。如果爬蟲正在進(jìn)行網(wǎng)站文檔獲取,它會將其訪問過的網(wǎng)頁進(jìn)行復(fù)制和保存。另外,所有被爬蟲抓取過的網(wǎng)頁將會被系統(tǒng)存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索。這些經(jīng)常存儲在網(wǎng)站上以被查看、閱讀和導(dǎo)航的文檔,會被以“快照”的方式進(jìn)行保存到本地[4]。歸檔被稱為倉儲,用來存儲和管理網(wǎng)頁的集合。倉庫只存儲HTML頁,這些頁被存儲為不同的文件,倉儲庫與存儲數(shù)據(jù)的其他系統(tǒng)類似,就像現(xiàn)代數(shù)據(jù)庫一樣。唯一不同的是,倉儲庫不需要數(shù)據(jù)庫系統(tǒng)提供的所有功能。倉儲庫存儲由爬蟲檢索的網(wǎng)頁的最新版本[5]。

        雖然無法直接發(fā)現(xiàn)特定的網(wǎng)站服務(wù)的內(nèi)容,以便可以對其建立索引,但這個網(wǎng)站可以可能通過間接的方式進(jìn)行訪問。為了發(fā)現(xiàn)網(wǎng)站內(nèi)容,淺網(wǎng)采取的搜索引擎從已知協(xié)議的虛擬端口號跟蹤超鏈接的技術(shù),對于深網(wǎng)內(nèi)容基本無效。舉例說,這些爬蟲不會去嘗試發(fā)現(xiàn)AJAX結(jié)果生成的動態(tài)頁面。深網(wǎng)爬取也成倍增加了待爬取的網(wǎng)頁鏈接,一些爬蟲只從網(wǎng)頁代碼中形如<a href="URL">取出一部分URL。其中通過AJAX生成的頁面會給爬蟲帶來問題。在這方面學(xué)者已有一些研究,陸亮等采取rhino組件實現(xiàn)了一個AJAX爬蟲[6],以分析JavaScript代碼來獲取URL,但該設(shè)計中缺乏對頁面狀態(tài)的遍歷,爬取AJAX內(nèi)容十分有限;郭津丞等提出了一個用WebKit模擬JavaScript動作的爬蟲模型[7],但該模型在摸擬AJAX事件觸發(fā)機制還比較欠缺。要解決好AJAX深網(wǎng)的內(nèi)容爬取,必須將網(wǎng)頁狀態(tài)遍歷,事件觸發(fā),XML解析技術(shù)有機融合,才能有效實現(xiàn)更大范圍的內(nèi)容覆蓋和更高的爬取效率。

        2 算法原理

        與靜態(tài)網(wǎng)頁相比,AJAX網(wǎng)頁是在靜態(tài)網(wǎng)頁的基礎(chǔ)上,通過JavaScript實現(xiàn)網(wǎng)頁內(nèi)容的動態(tài)變化。靜網(wǎng)頁一般通過一系列<a href=’XXXXX’>超鏈接到其他網(wǎng)頁,而AJAX網(wǎng)頁可以通過通定義各種事件實現(xiàn)同一網(wǎng)頁內(nèi)容的變化,或者到其他網(wǎng)頁的跳轉(zhuǎn)。

        2.1 狀態(tài)定義

        為了實現(xiàn)對AJAX的爬取,我們需要針對AJAX網(wǎng)頁建立相應(yīng)的模型。一個網(wǎng)站的狀態(tài)模型可以用下述元組表示:

        <Dom,element,event,action>

        Dom表示網(wǎng)頁對象模型結(jié)構(gòu)

        Element網(wǎng)頁內(nèi)的各種元素,名稱及狀態(tài)屬性;

        Event綁定于元素的事件

        Action事件觸發(fā)后,網(wǎng)站相應(yīng)的操作

        在爬取過程中,由于事件的觸發(fā),dom相應(yīng)發(fā)生更新,element元素發(fā)達(dá)變化,包括新的元素,以及元素新的狀態(tài),與綁定的事件又形成了新元組。我們將上述元組中element元素組以<name,status>表示,則可以用<name,status,event,action>簡潔而唯一地標(biāo)示出包含狀態(tài)的動作元素,本文以actionlist命名。

        2.2 算法設(shè)計

        爬取AJAX相應(yīng)的算法也可描述為:

        第一步:從爬取隊列中指定鏈接;將提取URL作為crawler任務(wù)線程準(zhǔn)備加入到事件隊列。

        第二步,若事件隊列是超鏈接,則抓取新的網(wǎng)頁,生成dom;若是AJAX事件,則觸發(fā)AJAX事件并獲取響應(yīng)內(nèi)容,刷新dom;

        第三步,對dom的元素進(jìn)行解析,根據(jù)網(wǎng)頁的超鏈接、綁定AJAX事件的元素,元素的狀態(tài),生成元組。

        第四步,遍歷元組,由相應(yīng)的element,及event,對應(yīng)生成actionlist;

        第五步,若未達(dá)到最大爬取深度,則將actionlist進(jìn)行去重處理,并加入爬取隊列;

        第六步,按此過程進(jìn)行新一輪的迭代。繼續(xù)轉(zhuǎn)之前爬取步驟。

        具體實現(xiàn)為:

        其主要功能介紹:addactionlist添加動作,動作隊列actionlists存儲網(wǎng)頁事件動成作隊列,根據(jù)事件動作隊列,生成相應(yīng)爬取任務(wù),啟動fecher抓取相關(guān)網(wǎng)頁。在整個抓取過程中,根據(jù)動作元組hash,對網(wǎng)址進(jìn)行去重處理duplicate removal。去重之后的網(wǎng)頁進(jìn)行解析,并存儲。抓取的過程中也根據(jù)網(wǎng)頁含的鏈接、事件動作,更新actionlist,進(jìn)行廣度遍歷。Fetcher內(nèi)部采用生產(chǎn)者消費者模式,QueueFeeder線程不斷從Generator中獲取抓取任務(wù),F(xiàn)etcherThread則負(fù)責(zé)消費這些任務(wù)-抓取頁面。

        在這些包中,crawler和fecher包是整個爬取系統(tǒng)的核心功能包,其中,crawler包調(diào)用fecher抓取頁面,從頁面中提取鏈接,生成種子,注入種子到抓取隊列,fecher從種子隊列中取出種子,執(zhí)行抓取任務(wù)。兩個模塊的主要功能如圖1所示。

        圖1 Crawler主要功能示意圖

        3 實驗比較

        我們將該爬蟲與常規(guī)爬蟲在實驗環(huán)境中進(jìn)行了比較,以Tomcat服務(wù)器,用JSP+AJAX從數(shù)據(jù)庫生成動態(tài)網(wǎng)頁,我們采取httpclient+htmlunit+Selenium組件,從各大專利網(wǎng)站以廣度優(yōu)先方式進(jìn)行爬取,以網(wǎng)站域名和專利類別索引為單位來切分爬取工作,每個分類對應(yīng)一個map任務(wù)。系統(tǒng)要維護(hù)一個全局一索引表,用來記錄哪些url已經(jīng)爬取過,哪些尚未爬取,哪些正在爬取。這樣可以實現(xiàn)在hadoop上的分布式知識爬取目標(biāo)。并與傳統(tǒng)爬蟲heritrix進(jìn)行了比較。

        從表1中可以看出,相對較傳統(tǒng)爬蟲,AJAX爬蟲能夠在AJAX動態(tài)網(wǎng)頁上爬取更多的網(wǎng)頁內(nèi)容。分析其原因,傳統(tǒng)的爬蟲(如heritrix)僅能從單一的<a href=..>標(biāo)簽中去判斷下一步要抓取的隊列。而AJAX爬蟲可以從網(wǎng)頁中所有的元素綁定的事件中去觸發(fā)下一步抓取的隊列。因此,其抓取范圍和內(nèi)容遠(yuǎn)大于普通爬蟲。另外,AJAX爬蟲的抓取速度又遠(yuǎn)低于傳統(tǒng)抓蟲,其原因于,AJAX爬蟲需要解析綁定JavaScript事件的所有網(wǎng)頁元素,傳統(tǒng)爬蟲僅需解析單一的超鏈接標(biāo)簽;AJAX爬蟲還需要通過模擬組件httpclient+html?unit+Selenium來模擬對AJAX事件的觸發(fā),十分耗時;傳統(tǒng)爬蟲則直接用http get命令去下載url的內(nèi)容,相對快得多。

        表1 爬蟲性能比較

        [1]Bergman,Michael K(August 2001).The Deep Web:Surfacing Hidden Value.The Journal of Electronic Publishing.7(1)。

        [2]Spetka,Scott.The TkWWW Robot:Beyond Browsing.NCSA.Archived from the Original on 3 September,2004.

        [3]Kobayashi,M.&Takeda,K.(2000).Information Retrieval on the Web.ACM Computing Surveys.ACM Press,32(2):144-173.

        [4]Masanès,Julien(February 15,2007).Web Archiving.Springer.p.1.ISBN 978-3-54046332-0.

        [5]Patil,Yugandhara et al.(2016).Review of Web Crawlers with Specification and Working.International Journal of Advanced Research Computer and Communication Engineering,5(1):4.

        [6]陸亮,李東.支持AJAX的網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn)[J].智能計算機與應(yīng)用,2013(06):57-59+62

        [7]郭津丞,馮超,張磊.基于WebKit的網(wǎng)絡(luò)爬蟲[J].現(xiàn)代電子技術(shù),2013(18):62-64.

        Design of Deep Web Crawler Based on AJAX

        SONG Long1,LI Yan2
        (1.CollegeofComputerScience,Sichuan University,Chengdu 610065;2.CollegeofManufacturing,SichuanUniversity,Chengdu 610065)

        AJAX technology is widely used in the deep network,yet implementing the data acquisition of the AJAX pages of the deep web by the web crawler technology faces huge challenges.On the basis of studying how to find the hyperlink information in the webpage,and effectively tra?versing the event triggered Ajax response information,proposes a AJAX deep web state model and designs a crawling algorithm.Experi?ments show that the crawler model can effectively enhance the coverage rate of AJAX deep web crawling.

        爬蟲;AJAX;搜索引擎

        1007-1423(2017)28-0072-04

        10.3969/j.issn.1007-1423.2017.28.019

        孫龍(1975-),男,四川巴中人,研究方向為軟件工程、人工智能

        2017-08-01

        2017-09-25

        Crawler;AJAX;Search Engine

        猜你喜歡
        爬蟲隊列網(wǎng)頁
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        隊列里的小秘密
        基于多隊列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊列里
        基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
        電子制作(2018年10期)2018-08-04 03:24:38
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        豐田加速駛?cè)胱詣玉{駛隊列
        基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        日本一区二区视频免费在线看| 亚洲熟妇无码久久精品| 亚洲AV伊人久久综合密臀性色| 亚洲精彩视频一区二区| 东北妇女肥胖bbwbbwbbw| 亚洲av成熟国产精品一区二区| 麻豆精产国品| 无码一区二区三区| 农村国产毛片一区二区三区女| www国产亚洲精品久久网站| 激情五月我也去也色婷婷| 人妻精品久久中文字幕| 日韩人妻无码精品久久久不卡| 国产特黄a三级三级三中国| 91日本精品国产免| 中文字幕一区二区人妻性色av| 91麻豆精品激情在线观看最新| 成人无码一区二区三区| 国产精品久久婷婷免费观看| 久久99热精品这里久久精品| 精品国产一区二区三区2021| 亚洲av高清资源在线观看三区| 精品国产aⅴ无码一区二区| 日韩精品在线观看在线| 99综合精品久久| 国产精品亚洲一区二区三区在线 | 青娱乐极品视觉盛宴国产视频 | 国产看黄网站又黄又爽又色| 国产女人好紧好爽| 亚洲视频不卡免费在线| 欧美午夜精品久久久久免费视| 无码国产福利av私拍| 亚洲成a人片在线观看无码专区| 少妇又骚又多水的视频| 亚洲av日韩片在线观看| 久久香蕉国产线熟妇人妻| 午夜av天堂精品一区| 久久精品国产成人午夜福利| 欧美日本国产va高清cabal| 伊人久久大香线蕉午夜av| 亚洲精品在线视频一区二区|