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.

主站蜘蛛池模板: 国产在线八区| 国产女人喷水视频| 午夜视频在线观看免费网站| 女人18毛片水真多国产| 久久黄色视频影| 日本道综合一本久久久88| 蜜臀av性久久久久蜜臀aⅴ麻豆| 欧美国产在线一区| 国产成人综合久久精品下载| 欧美性久久久久| 国产97视频在线| 久久人妻xunleige无码| 高清视频一区| 国产精品成人AⅤ在线一二三四| 欧美亚洲网| 国产人碰人摸人爱免费视频| 免费国产好深啊好涨好硬视频| 91精品国产91久久久久久三级| 日韩精品无码一级毛片免费| 久久美女精品国产精品亚洲| 亚洲黄色视频在线观看一区| 亚洲中文字幕在线观看| 国产福利2021最新在线观看| 国产成人精品在线| 天堂中文在线资源| 久久香蕉国产线看精品| 欧美视频在线第一页| 六月婷婷精品视频在线观看| 高清码无在线看| 99热这里只有精品免费| 欧美精品成人| 久久先锋资源| 久久一本日韩精品中文字幕屁孩| 精品精品国产高清A毛片| 国产性精品| 亚洲中文无码h在线观看| 一区二区三区在线不卡免费| 青青青视频蜜桃一区二区| 四虎永久在线视频| 色婷婷亚洲综合五月| 伊人AV天堂| 久久香蕉欧美精品| 欧美精品伊人久久| 青青草国产在线视频| 亚洲国产精品一区二区第一页免| 国产一区成人| 综合网天天| 国产正在播放| 中文字幕无线码一区| 成人免费一级片| 无码人中文字幕| 精品国产香蕉在线播出| 亚洲国产中文精品va在线播放 | 亚洲一级毛片在线观| 国产精品香蕉| 91精品福利自产拍在线观看| 国产成人久久777777| 国产在线无码一区二区三区| 免费毛片全部不收费的| 亚洲无码精彩视频在线观看| 国产免费高清无需播放器| 狠狠色成人综合首页| 国产精品流白浆在线观看| 中文毛片无遮挡播放免费| 精品超清无码视频在线观看| 十八禁美女裸体网站| 亚洲自拍另类| 制服丝袜一区| 中文字幕资源站| 欧美a级完整在线观看| 欧美日韩午夜| 欧美h在线观看| 99久久性生片| 亚洲性一区| 国产网站免费观看| 国产午夜精品一区二区三区软件| 高清无码一本到东京热| 1024国产在线| 亚洲美女操| 精品成人一区二区三区电影 | 亚洲综合天堂网| 国产精品无码一二三视频|