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

基于WebKit的網(wǎng)絡(luò)爬蟲

2013-04-12 00:00:00郭津丞馮超張磊
現(xiàn)代電子技術(shù) 2013年18期

摘 要: 以AJAX技術(shù)為代表的Web應(yīng)用新技術(shù)的出現(xiàn),賦予了JavaScript更加豐富的功能。但也導(dǎo)致更多的URL以數(shù)據(jù)形式存在于JavaScript代碼中,給網(wǎng)絡(luò)爬蟲的URL提取帶來了新的挑戰(zhàn)。為了解決這一問題,在此提出了一種基于WebKit的網(wǎng)絡(luò)爬蟲,以WebKit作為爬蟲的前端來解析并執(zhí)行JavaScript。一是實現(xiàn)JavaScript對網(wǎng)頁DOM的修改,從而將存在于此類代碼中的URL轉(zhuǎn)換成HTML形式并以靜態(tài)分析方法來提取;二是定位JavaScript頁面導(dǎo)航的代碼并且劫持輸入導(dǎo)航方法及對象的變量以提取變量中的URL。這充分降低了客戶端腳本給爬蟲帶來的障礙,從而更好地提取網(wǎng)頁中的URL。

關(guān)鍵詞: 網(wǎng)絡(luò)爬蟲; 瀏覽器引擎; WebKit; JavaScript

中圖分類號: TN964?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2013)18?0062?03

0 引 言

隨著各種形式的互聯(lián)網(wǎng)應(yīng)用不斷出現(xiàn),互聯(lián)網(wǎng)正在顯著改變著人類的生活方式,互聯(lián)網(wǎng)應(yīng)用已經(jīng)成為了一部分人類生活中不可或缺的一部分。互聯(lián)網(wǎng)規(guī)模的不斷擴大,互聯(lián)網(wǎng)上的信息也呈幾何倍數(shù)增長。如何快速準(zhǔn)確地找到所需要的信息就成了一個難題,而網(wǎng)絡(luò)爬蟲正是解決這個問題的關(guān)鍵。在網(wǎng)絡(luò)爬蟲的眾多應(yīng)用場景中,最典型的例子就是搜索引擎。而在備受關(guān)注的Web應(yīng)用安全領(lǐng)域,網(wǎng)絡(luò)爬蟲也是不可或缺的一部分。

網(wǎng)絡(luò)爬蟲是一個按照一定邏輯掃描或者“爬行”網(wǎng)頁的程序或者腳本[1]。工作流程一般是根據(jù)設(shè)定的初始URL(統(tǒng)一資源定位符)從網(wǎng)絡(luò)上獲取相應(yīng)的內(nèi)容,從這些內(nèi)容中抽取出需要的信息以及URL,隨后以新抽取的URL為基礎(chǔ)重復(fù)之前的工作。網(wǎng)絡(luò)爬蟲的目的并不是單純的“爬行”,而是為更高層次的目的所服務(wù)。比如搜索引擎所使用的爬蟲在爬行的過程中會根據(jù)關(guān)鍵字協(xié)助搜索引擎建立索引,而黑盒Web應(yīng)用漏洞掃描工具所使用的爬蟲在工作時會將發(fā)現(xiàn)的Web應(yīng)用入口記錄并提交給漏洞檢測模塊進行檢測。所以網(wǎng)絡(luò)爬蟲的工作效果將直接決定這些工作的效果。

為了解決JavaScript執(zhí)行問題,本文提出了一種基于WebKit的網(wǎng)絡(luò)爬蟲。在網(wǎng)絡(luò)爬蟲中引入瀏覽器引擎,使得網(wǎng)絡(luò)爬蟲可以執(zhí)行JavaScript并對網(wǎng)頁進行渲染,獲取網(wǎng)頁在瀏覽器上呈現(xiàn)給用戶的結(jié)果,從而在之后的分析中提取到更多的URL。

1 WebKit分析

瀏覽器引擎,是瀏覽器的核心部分,也稱瀏覽器內(nèi)核,負責(zé)對網(wǎng)頁語法的解釋(如HTML,JavaScript)并渲染網(wǎng)頁。主流的瀏覽器引擎包括Trident,Gecko,Presto以及WebKit。Trident是微軟Internet Explorer的瀏覽器引擎的名稱,主要使用者有IE和世界之窗瀏覽器。Gecko是由Mozilla基金會開發(fā)的瀏覽器引擎的名字,主要代表是Firefox。Presto是一個由Opera Software開發(fā)的瀏覽器引擎,供Opera 7.0及以上使用。Webkit是一款開源的瀏覽器引擎[9],目前使用WebKit引擎的瀏覽器主要有蘋果Safari、谷歌Chrome、遨游瀏覽器以及360極速瀏覽器。

使用WebKit引擎的瀏覽器都是以速度著稱的瀏覽器,這說明了WebKit相對與其他瀏覽器引擎的最大優(yōu)勢是速度。這正是選擇在網(wǎng)絡(luò)爬蟲中使用WebKit的原因。因為網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁的速度是制約網(wǎng)絡(luò)爬蟲速度的瓶頸。WebKit的核心主要由2個模塊組成:WebCore和JavaScriptCore,其代碼起源于自由軟件社區(qū)KDE的HTML排版引擎KHTML及JavaScript引擎KJS的代碼。這兩個模塊將完成HTML解析、JavaScript解析以及網(wǎng)頁布局和渲染三部分工作。

WebCore主要組成部分如表1所示。

2 方案設(shè)計

網(wǎng)絡(luò)爬蟲總體上分為4個模塊:網(wǎng)頁獲取模塊、網(wǎng)頁渲染模塊、URL抽取模塊以及URL隊列管理模塊。總體方案設(shè)計如圖1所示。網(wǎng)頁獲取模塊的功能是通過網(wǎng)絡(luò)接口向服務(wù)器發(fā)起請求并獲取服務(wù)器的響應(yīng),即獲取URL對應(yīng)文檔的源代碼。網(wǎng)頁渲染模塊的功能是解析源代碼中的HTML和JavaScript,并運行JavaScript代碼對對網(wǎng)頁進行渲染,即獲取瀏覽器呈現(xiàn)給用戶的網(wǎng)頁形式,但是仍然是以HTML的形式存儲的。URL抽取模塊的功能是分析經(jīng)過渲染的HTML代碼,從中抽取出新的URL,并將新的URL放入鏈接隊列中。鏈接抽取模塊分成2個子模塊:HTMLParser和JSParser。HTMLParser通過HTML語法分析和正則表達式提取URL。JSParser則對JavaScript進行進一步的處理。這是由于JavaScript中可能包含引起頁面跳轉(zhuǎn)的語句,比如window對象的open方法,location對象的href屬性和replace方法等。這些語句當(dāng)中包含有URL,但是不會引起網(wǎng)頁DOM結(jié)構(gòu)的變化,所以網(wǎng)頁渲染模塊不能使它們顯現(xiàn)在HTML中,還需要進一步分析JavaScript以提取這些URL。URL隊列管理模塊的功能是管理URL隊列,負責(zé)決定下一個爬行的URL,并決定哪些新發(fā)現(xiàn)的URL需要放入隊列中。

3 運行測試

4 結(jié) 語

本文設(shè)計并實現(xiàn)了一種基于WebKit瀏覽器引擎的網(wǎng)絡(luò)爬蟲,較好地實現(xiàn)了網(wǎng)頁中的JavaScript代碼對網(wǎng)頁的渲染,從而提升了網(wǎng)絡(luò)爬蟲的URL提取能力,可以有效提高搜索引擎和Web應(yīng)用漏洞掃描程序的覆蓋率。目前在處理用戶觸發(fā)的JavaScript代碼(如onclick事件)方面還有所欠缺,這將是下一步的研究目標(biāo)。

參考文獻

[1] Wikipedia. Web crawler [EB/OL]. [2013?05?30]. http://en.wikipedia.org/wiki/Web_crawler.

[2] University of Toronto. HTML and XHTML document type definitions [EB/OL]. [2013?04?23]. http://www.utoronto.ca/webdocs/HTMLdocs/HTML_Spec/html.html.

[3] Wikipedia. Regular expression [EB/OL]. [2013?04?23]. http://en.wikipedia.org/wiki/Regular_expression.

[4] World Wide Web Consortium. Document object model [EB/OL]. [2013?04?23]. http://www.w3.org/DOM.

[5] ALVAREZ M, RAPOSO J, PAN A, et al. DeepBot: a focused crawler for accessing hidden web content [C]// Proceedings of DEECS 2007. New York, USA: ACM, 2007: 18?25.

[6] 彭軻,廖聞劍.基于瀏覽器服務(wù)的網(wǎng)絡(luò)爬蟲[J].硅谷,2009(4): 49?50.

[7] 劉兵.基于JavaScript等多鏈接分析的主題爬蟲設(shè)計實現(xiàn)[J].許昌學(xué)院學(xué)報,2010,29(2):87?90.

[8] 范軒苗,鄭寧,范淵.一種基于AJAX的爬蟲模型的設(shè)計與實現(xiàn) [J].計算機應(yīng)用與軟件,2010,27(1):96?99.

[9] WebKit Open Source Project. The WebKit open source project [EB/OL]. [2013?03?24]. http://www.webkit.org.

[10] WebKit Open Source Project. JavaScriptCore [EB/OL]. [2013?03?24]. http://trac.webkit.org/wiki/JavaScriptCore.

[11] w3af. w3af?open source web application security scanner [EB/OL]. [2013?04?16]. http://www.w3af.org.

[12] GIRARDI C, RICCA F, TONELLA P. Web crawlers compared [J]. International Journal of Web Information Systems, 2006, 2(2): 85?94.

主站蜘蛛池模板: 91色国产在线| 99热这里都是国产精品| 中文字幕乱码中文乱码51精品| 日本一区高清| 熟妇丰满人妻av无码区| 深爱婷婷激情网| 国产永久免费视频m3u8| 精品乱码久久久久久久| 欧美日本在线播放| 欧美综合一区二区三区| 国产成人1024精品| 亚洲精品大秀视频| 91黄视频在线观看| 一本大道香蕉中文日本不卡高清二区| 国内精品小视频在线| 无码福利视频| 曰韩免费无码AV一区二区| 国产91九色在线播放| 亚洲视频色图| 日本成人不卡视频| 女高中生自慰污污网站| 免费国产福利| 99在线小视频| 波多野结衣中文字幕久久| 国产亚洲视频免费播放| 免费Aⅴ片在线观看蜜芽Tⅴ| 国产美女叼嘿视频免费看| 天天躁夜夜躁狠狠躁图片| 91外围女在线观看| 国产精品区网红主播在线观看| 1024你懂的国产精品| 国产高颜值露脸在线观看| 色视频国产| 日韩av无码DVD| 久久性妇女精品免费| igao国产精品| 国产亚洲精| 国产精品无码影视久久久久久久| 国产欧美专区在线观看| 国产丝袜一区二区三区视频免下载| 99中文字幕亚洲一区二区| 精品久久高清| 国产人碰人摸人爱免费视频| 亚洲91精品视频| 亚洲天堂在线视频| 亚洲人成网18禁| 亚洲欧洲日本在线| 国产18在线播放| 国产第一福利影院| 久久久久无码精品国产免费| 亚洲最猛黑人xxxx黑人猛交| 天天综合网在线| 中文字幕首页系列人妻| 亚洲综合片| 国产白丝av| 国产午夜无码片在线观看网站 | 成人久久18免费网站| 伊人激情综合| 天天综合网亚洲网站| 亚洲swag精品自拍一区| 成年人福利视频| 欧美午夜网站| 无码高潮喷水专区久久| 国产成人精品免费av| 亚洲无码电影| 精品91视频| аⅴ资源中文在线天堂| 毛片三级在线观看| 日韩精品专区免费无码aⅴ| 亚洲狼网站狼狼鲁亚洲下载| 日韩视频福利| 欧美精品成人一区二区视频一| 免费人成视频在线观看网站| 91精品专区| 精品一区二区三区自慰喷水| 全午夜免费一级毛片| 日韩精品中文字幕一区三区| 欧美三级视频在线播放| 亚洲欧洲日韩国产综合在线二区| 亚洲男人的天堂网| 国产欧美日韩一区二区视频在线| 久久香蕉国产线看观看亚洲片|