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

基于AJAX的深網爬蟲設計

2017-11-07 06:11:08孫龍李彥
現代計算機 2017年28期
關鍵詞:頁面

孫龍,李彥

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

基于AJAX的深網爬蟲設計

孫龍1,李彥2

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

AJAX技術廣泛應用在深網中,要實現對深網的AJAX頁面數據采集,爬蟲技術將面臨新的挑戰。在研究如何發現網頁中包含超鏈接標簽、AJAX事件的爬取元素,并有效遍歷由事件觸發的AJAX響應信息的基礎上,提出一種AJAX深網狀態模型,設計爬取算法。并通過實驗驗證該爬蟲模型能夠有效提升實現AJAX深網的爬取的覆蓋率。

0 引言

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

1 AJAX深網爬取

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

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

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

2 算法原理

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

2.1 狀態定義

為了實現對AJAX的爬取,我們需要針對AJAX網頁建立相應的模型。一個網站的狀態模型可以用下述元組表示:

<Dom,element,event,action>

Dom表示網頁對象模型結構

Element網頁內的各種元素,名稱及狀態屬性;

Event綁定于元素的事件

Action事件觸發后,網站相應的操作

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

2.2 算法設計

爬取AJAX相應的算法也可描述為:

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

第二步,若事件隊列是超鏈接,則抓取新的網頁,生成dom;若是AJAX事件,則觸發AJAX事件并獲取響應內容,刷新dom;

第三步,對dom的元素進行解析,根據網頁的超鏈接、綁定AJAX事件的元素,元素的狀態,生成元組。

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

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

第六步,按此過程進行新一輪的迭代。繼續轉之前爬取步驟。

具體實現為:

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

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

圖1 Crawler主要功能示意圖

3 實驗比較

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

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

表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的網絡爬蟲設計與實現[J].智能計算機與應用,2013(06):57-59+62

[7]郭津丞,馮超,張磊.基于WebKit的網絡爬蟲[J].現代電子技術,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

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 国产网站黄| 欧美在线网| 国产成人一区在线播放| 国产欧美日韩va| 黄色网址免费在线| 婷婷久久综合九色综合88| 国产精品手机在线播放| 国产99精品视频| 欧美亚洲国产精品久久蜜芽| 麻豆国产精品| 亚洲国产天堂久久综合| 综合亚洲色图| 成人午夜视频在线| 免费大黄网站在线观看| 国产无遮挡裸体免费视频| 国产在线观看一区精品| 亚洲黄色网站视频| 欧美三级自拍| 国产精品永久免费嫩草研究院 | 国产精品永久不卡免费视频| 国产成人精品一区二区秒拍1o| 青青青视频91在线 | 综合网久久| 喷潮白浆直流在线播放| 国产亚洲精品在天天在线麻豆| 天天色综网| 18黑白丝水手服自慰喷水网站| 久久久成年黄色视频| 91麻豆精品国产91久久久久| 国产精品久线在线观看| 国产精品乱偷免费视频| 亚洲成综合人影院在院播放| 欧美色综合久久| 国产成人永久免费视频| 久久精品国产91久久综合麻豆自制 | 国产无码制服丝袜| 色婷婷啪啪| 一本久道久久综合多人| 日韩视频免费| 视频一本大道香蕉久在线播放| 国产97区一区二区三区无码| 色呦呦手机在线精品| 亚洲愉拍一区二区精品| 国产特级毛片aaaaaaa高清| 成人欧美在线观看| 人妻精品久久无码区| 真人高潮娇喘嗯啊在线观看| 国产精品刺激对白在线| 欧美a级完整在线观看| 国产全黄a一级毛片| 国产精品免费电影| 乱人伦视频中文字幕在线| 亚洲黄色视频在线观看一区| 一边摸一边做爽的视频17国产| 亚洲日韩精品伊甸| 成人精品午夜福利在线播放| 亚洲美女视频一区| 国产aⅴ无码专区亚洲av综合网| 99精品在线看| 亚洲天堂网站在线| 日韩欧美在线观看| 熟妇无码人妻| 国产亚洲视频免费播放| 97久久人人超碰国产精品| 亚洲人在线| 国产呦视频免费视频在线观看| 好紧好深好大乳无码中文字幕| 国产裸舞福利在线视频合集| 在线欧美a| 国产在线一二三区| 精品国产一区二区三区在线观看| 无遮挡国产高潮视频免费观看| 国产午夜福利亚洲第一| 国产成人精品2021欧美日韩| 色综合久久综合网| 精品福利网| 国产剧情国内精品原创| 999国内精品久久免费视频| 国产99视频精品免费视频7| 999福利激情视频| 精品视频第一页| 五月婷婷欧美|