動態(tài)web 的網(wǎng)絡(luò)爬蟲的研究_第1頁
動態(tài)web 的網(wǎng)絡(luò)爬蟲的研究_第2頁
動態(tài)web 的網(wǎng)絡(luò)爬蟲的研究_第3頁
動態(tài)web 的網(wǎng)絡(luò)爬蟲的研究_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

動態(tài)web的網(wǎng)絡(luò)爬蟲的研究1網(wǎng)絡(luò)爬蟲的歷史及現(xiàn)狀網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,假設(shè)把互聯(lián)網(wǎng)比喻成一個蜘蛛網(wǎng),那么爬蟲就是在網(wǎng)上爬來爬去的蜘蛛。傳統(tǒng)爬蟲從一個或假設(shè)干初始網(wǎng)頁的URL開場,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停頓條件。假設(shè)把整個互聯(lián)網(wǎng)當(dāng)成一個網(wǎng)站,那么網(wǎng)絡(luò)蜘蛛就可以用這個原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。隨著互聯(lián)網(wǎng)全面從Web1.0時代迅速進入Web2.0時代,由于Ajax異步加載的特性,為減輕效勞器壓力,基于Ajax的動態(tài)加載技術(shù)方案成為了個大公司的首選。然而隨著挪動互聯(lián)網(wǎng)的興起JavaScript在挪動端和PC客戶端的優(yōu)良特性被廣泛挖掘,基于前端MVC/MVVM的形式逐漸進入各大互聯(lián)網(wǎng)公司的首選解決方案。數(shù)據(jù)顯示2022年互聯(lián)網(wǎng)上動態(tài)網(wǎng)頁與靜態(tài)網(wǎng)頁的比例為12.1:1到2022年動態(tài)網(wǎng)頁與靜態(tài)網(wǎng)頁的比例攀升到22:1。動態(tài)網(wǎng)頁的急劇攀升讓各大搜索引擎公司愈發(fā)感覺到基于動態(tài)Web頁面的網(wǎng)絡(luò)爬蟲將越來越重要。2問題現(xiàn)狀及解決方案2.1問題現(xiàn)狀傳統(tǒng)的網(wǎng)絡(luò)爬蟲技術(shù)主要應(yīng)用于抓取靜態(tài)web網(wǎng)頁,由于Ajax改變了以往的單純的懇求/響應(yīng)協(xié)議機制。傳統(tǒng)的爬蟲根據(jù)url抓取頁面并解析頁面內(nèi)容提取新的url進展下一步抓取的機制很難完成。其次,如今互聯(lián)網(wǎng)中存在許多對實時性要求比擬高的網(wǎng)站,如股票、火車票等。這些網(wǎng)站包含大量的數(shù)據(jù)信息,并且在隨著效勞器端不斷的更新。當(dāng)搜索引擎抓取這些數(shù)據(jù)時,由于需要將數(shù)據(jù)下載到本地,因此永遠存在數(shù)據(jù)的同步性的問題,然而這些實時性數(shù)據(jù)的商業(yè)價值卻非常大。因此簡單的講,當(dāng)前的搜索引擎爬蟲系統(tǒng)遇到動態(tài)web頁面時的主要問題集中在:(1)無法提取Ajax加載的動態(tài)頁中的url。(2)無法抓取實時性數(shù)據(jù)。2.2網(wǎng)絡(luò)爬蟲關(guān)鍵技術(shù)(1)基于懇求響應(yīng)模型。用戶在閱讀器中輸入一個web頁面的url,客戶端向效勞器端發(fā)出一個懇求,效勞器在接收到該懇求后,假設(shè)沒有錯誤將頁面返回。(2)HTML標(biāo)簽及構(gòu)造。用戶在頁面上看的展示都是基于HTML進展展示的,因此爬蟲需要對html頁面進展解析,提取頁面中的url信息(3)文本對象模型(DOM)。DOM是用來訪問和處理HTML和XML文檔的。它可以將HTML和XML文檔構(gòu)造化。(4)正那么表達式。根據(jù)正那么表達式的優(yōu)良特性,可以根據(jù)條件快速提取HTML文本中的指定元素。2.3解決方案AJAX采用了JavaScript驅(qū)動的異步懇求/響應(yīng)機制。并且,在Ajax應(yīng)用中,JavaScript會對DOM構(gòu)造進展大量的變動,甚至頁面所有內(nèi)容都是通過JavaScript直接從效勞端讀取并動態(tài)繪制出來的。因此爬蟲引擎不能僅僅是基于的協(xié)議驅(qū)動,而必須是基于事件驅(qū)動的。針對實時性數(shù)據(jù),系統(tǒng)的實時特性主要表達在兩個方面:數(shù)據(jù)更新的實時性;數(shù)據(jù)變化后通過其它效勞的實時性。在海量的數(shù)據(jù)面前,由于抓取才能有限,根本無法滿足快速地更新所有的數(shù)據(jù)信息,為了保證用戶對于數(shù)據(jù)高實時性的要求,應(yīng)該盡可能地優(yōu)先保證熱門數(shù)據(jù)的數(shù)據(jù)更新,所以實時抓取的數(shù)據(jù)點選擇是比擬關(guān)鍵的。在這里我們使用購物助手的閱讀記錄以及購物搜索的查詢記錄當(dāng)作熱門商品為例說明。詳細(xì)流程為:用戶閱讀某商品,購物助手獲取該用戶所閱讀的商品URL以及其它商城該商品的URL列表發(fā)送到任務(wù)調(diào)度效勞器,任務(wù)調(diào)度效勞器根據(jù)上一次抓取的價格時間等信息來進展調(diào)度,將任務(wù)分配至抓取效勞器,抓取效勞器解析到新的價格后發(fā)送到結(jié)果入庫效勞器。結(jié)果入庫效勞器完成數(shù)據(jù)的更新,并通知其它價格事件監(jiān)聽程序。這就完成了整個基于查詢驅(qū)動的實時抓取的過程。這種實時抓取策略就叫做查詢驅(qū)動抓取(簡稱QTC,QueryTriggeredCrawling)。價格效勞器除了實時抓取和管理所有商品的價格之外,還需要向其它效勞(如降價提醒、全網(wǎng)比價等)提供價格變化的更新事件。如何使得其它效勞可以實時地得到商品的價格變化信息呢?我們首先介紹一下觀察者形式。觀察者形式(也被稱為發(fā)布/訂閱形式)是軟件設(shè)計形式的一種。在此種形式中,一個目的對象管理所有相依于它的觀察者對象,并且在它本身的狀態(tài)改變時主動發(fā)出通知。這通常透過呼叫各觀察者所提供的方法來實現(xiàn)。此種形式通常被用來實作事件處理系統(tǒng)。觀察者形式已經(jīng)在數(shù)據(jù)變化的實時通知方面被廣泛地應(yīng)用,它使得效勞具有高類聚、低耦合的特點。根據(jù)不同的應(yīng)用,爬蟲系統(tǒng)在許多方面存在差異,大體而言,可以將爬蟲劃分為如下三種類型:批量型爬蟲(BatchCrawler):批量型爬蟲有比擬明確的抓取范圍和目的,當(dāng)爬蟲到達這個設(shè)定的目的后,即停頓抓取過程。至于詳細(xì)目的可能各異,也許是設(shè)定抓取一定數(shù)量的網(wǎng)頁即可,也許是設(shè)定抓取消耗的時間等。增量型爬蟲(IncrementalCrawler):增量型爬蟲與批量型爬蟲不同,會保持持續(xù)不斷的抓取,對于抓取到的網(wǎng)頁,要定期更新,因為互聯(lián)網(wǎng)的網(wǎng)頁處于不斷變化中,新增網(wǎng)頁、網(wǎng)頁被刪除或者網(wǎng)頁內(nèi)容更改都很常見,而增量型爬蟲需要及時反映這種變化,所以處于持續(xù)不斷的抓取過程中,不是在抓取新網(wǎng)頁,就是在更新已有網(wǎng)頁。通用的商業(yè)搜索引擎爬蟲根本都屬此類。垂直型爬蟲(FocusedCrawter):垂直型爬蟲關(guān)注特定主題內(nèi)容或者屬于特定行業(yè)的網(wǎng)頁,比方對于在線旅游來說,只需要從互聯(lián)網(wǎng)頁而里找到與在線旅游相關(guān)的頁面內(nèi)容即可,其他行業(yè)的內(nèi)容不在考慮范圍。垂直型爬蟲一個最大的特點和難點就是:如何識別網(wǎng)頁內(nèi)容是否屬于指定行業(yè)或者主題。從節(jié)省系統(tǒng)資源的角度來說,不太可能把所有互聯(lián)網(wǎng)頁面下載下來之后再去挑選,這樣浪費資源就太過分了,往往需要爬蟲在抓取階段就可以動態(tài)識別某個網(wǎng)址是否與主題相關(guān),并盡量不去抓墩無關(guān)頁面,以到達節(jié)省資源的目的。垂直搜索網(wǎng)站或者垂直行業(yè)網(wǎng)站往往需要此種類型的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論