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久久综合麻豆自制| 亚洲成aⅴ人片在线影院八| 男人天堂伊人网| 国产综合在线观看视频| 国产噜噜噜视频在线观看| 99久久亚洲综合精品TS| 国产日韩精品欧美一区喷| 亚洲人成成无码网WWW| 美女免费黄网站| 九九线精品视频在线观看| 欧美日韩国产在线播放| 亚洲小视频网站| 成人在线视频一区| 亚洲成人黄色在线| 999精品视频在线| 国产h视频在线观看视频| 欧美第九页| 日韩国产高清无码| AV无码国产在线看岛国岛| 亚洲精品午夜无码电影网| 欧美第一页在线| 91在线国内在线播放老师| 网久久综合| 青青青国产免费线在| 色综合a怡红院怡红院首页| 国产在线视频自拍| 午夜日b视频| 丁香六月激情综合| 激情五月婷婷综合网| 国产精品人莉莉成在线播放| 免费无码又爽又刺激高| 久久国产av麻豆| 日韩精品一区二区三区swag| 婷婷六月综合网| 国产打屁股免费区网站| 熟女成人国产精品视频| 精品国产www| 天天做天天爱天天爽综合区| 国产精品无码一二三视频| 国产成人福利在线| 狠狠色婷婷丁香综合久久韩国 | 无码aaa视频| 一本大道视频精品人妻| 国产福利小视频在线播放观看| 亚洲国产综合第一精品小说| 欧美午夜性视频| 欧美精品色视频| 亚洲国产成人在线| 欧美成人影院亚洲综合图| 国产美女自慰在线观看| 国产亚洲精品资源在线26u| a级毛片免费网站| 亚洲人成电影在线播放| 97无码免费人妻超级碰碰碰| 国产菊爆视频在线观看| 青草视频免费在线观看| 日韩美女福利视频| 国产va免费精品观看| 欧美亚洲另类在线观看| 黄色污网站在线观看| 国产精品嫩草影院av| 亚洲无码高清一区| 国产高颜值露脸在线观看| P尤物久久99国产综合精品| 少妇被粗大的猛烈进出免费视频| 欧美精品成人| 国产97公开成人免费视频| 国产精品尤物在线| 国产欧美日韩18| 日韩在线2020专区| 日韩欧美国产精品| 成人一区专区在线观看| 中文字幕无码av专区久久| 欧美日韩国产在线人成app| 伊人网址在线| 成年人午夜免费视频| 成人福利在线免费观看| 91色在线观看| 国产精品自在自线免费观看| 99精品视频在线观看免费播放| 色播五月婷婷|