




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中國礦業(yè)大學計算機學院2014級本科生課程報告課程名稱應用軟件開發(fā)實踐報告時間2017.6.28學生姓名朱少杰、胥鐵馨學 號、專 業(yè)14級計科6班任課教師 徐慧應用軟件開發(fā)實踐課程報告任課教師評語任課教師評語(對課程基礎理論的掌握;對課程知識應用能力的評價;對課程報告相關實驗、 作品、軟件等成果的評價;課程學習態(tài)度和上課紀律;課程成果和報告工作量;總體評價和成績; 存在問題等):成績:任課教師簽字:成績:應用軟件開發(fā)實踐課程報告摘要網絡爬蟲(Web Crawler),通常被稱為爬蟲,是搜索引擎的重要組成部分。隨著信息技術 的飛速進步,作為搜索引擎的一個組成部分一一網絡爬蟲,一直是研究的熱點,它
2、的好壞 會直接決定搜索引擎的未來。目前,網絡爬蟲的研究包括Web搜索策略研究的研究和網絡 分析的算法,兩個方向,其中在Web爬蟲網絡搜索主題是一個研究方向,根據(jù)一些網站的 分析算法,過濾不相關的鏈接,連接到合格的網頁,并放置在一個隊列被抓取。 把互聯(lián) 網比喻成一個蜘蛛網,那么Spider就是在網上爬來爬去的蜘蛛。網絡蜘蛛是通過網頁的 鏈接地址來尋找網頁,從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在 網頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網頁,這樣一直循環(huán)下去,直 到把這個網站所有的網頁都抓取完為止。如果把整個互聯(lián)網當成一個網站,那么網絡爬蟲 就可以用這個原理把互聯(lián)網
3、上所有的網頁都抓取下來。關鍵詞:網絡爬蟲;Java;多線程;MySQL; Webmagic; CsdnblogABSTRACTWeb Crawler, usually called Crawler for short, is an important part of search engine. With the high-speed development of information, Web Crawler- the search engine can not lack of- which is a hot research topic those years. The quality
4、of a search engine is mostly depended on the quality of a Web Crawler. Nowadays, the direction of researching Web Crawler mainly divides into two parts: one is the searching strategy to web pages; the other is the algorithm of analysis URLs. Among them, the research of Topic-Focused Web Crawler is t
5、he trend. It uses some webpage analysis strategy to filter topic-less URLs and add fit URLs into URL-WAIT queue. The metaphor of a spider web internet, then Spider spider is crawling around on the Internet. Web spider through web link address to find pages, starting from a one page website (usually
6、home), read the contents of the page, find the address of the other links on the page, and then look for the next Web page addresses through these links, so has been the cycle continues, until all the pages of this site are crawled exhausted. If the entire Internet as a site, then you can use this W
7、eb crawler principle all the pages on the Internet are crawling down.Keywords:Web crawler; Java; Multithreading; MySQL; Webmagic; Csdnblog TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document .網絡爬蟲的簡介1定義1 HYPERLINK l bookmark12 o Current Document 產生背景1組成1 HYPERLINK l bookmark14 o Current Document
8、 分類2 HYPERLINK l bookmark16 o Current Document 通用網絡爬蟲2 HYPERLINK l bookmark18 o Current Document 焦網絡爬蟲2 HYPERLINK l bookmark20 o Current Document 增量式網絡爬蟲2 HYPERLINK l bookmark22 o Current Document Deep Web 爬蟲2 HYPERLINK l bookmark24 o Current Document 發(fā)展趨勢3 HYPERLINK l bookmark26 o Current Document
9、.環(huán)境需求及配置3 HYPERLINK l bookmark28 o Current Document Java版本及配置3 HYPERLINK l bookmark30 o Current Document Eclipse 酉己置5 HYPERLINK l bookmark32 o Current Document Maven 酉己置6 HYPERLINK l bookmark34 o Current Document .網絡爬蟲模型的具體設計9 HYPERLINK l bookmark36 o Current Document 框架 webmagic9 HYPERLINK l bookma
10、rk38 o Current Document WebMagic 概覽9 HYPERLINK l bookmark40 o Current Document Webmagic 總體架構9 HYPERLINK l bookmark44 o Current Document Webmagic 項目組成10 HYPERLINK l bookmark58 o Current Document 網頁搜索策略11 HYPERLINK l bookmark60 o Current Document 拓撲分析算法11 HYPERLINK l bookmark62 o Current Document 網頁內容
11、分析算法12 HYPERLINK l bookmark64 o Current Document 爬行策略13爬蟲的配置17 HYPERLINK l bookmark66 o Current Document 頁面元素的抽取21XPath21 HYPERLINK l bookmark82 o Current Document CSS 選擇器22 HYPERLINK l bookmark84 o Current Document 正則表達式22 HYPERLINK l bookmark86 o Current Document 鏈接的發(fā)現(xiàn)22 HYPERLINK l bookmark88 o C
12、urrent Document 具體代碼實現(xiàn)22 HYPERLINK l bookmark90 o Current Document CsdnblogPageProcessor.java22App.java.26 HYPERLINK l bookmark92 o Current Document .導入MySQL數(shù)據(jù)庫27 HYPERLINK l bookmark94 o Current Document MySQL 簡介27 HYPERLINK l bookmark96 o Current Document MySQL的安裝及配置28 HYPERLINK l bookmark114 o Cu
13、rrent Document 安裝 MySQLWorkbench32 HYPERLINK l bookmark122 o Current Document 編寫鏈接數(shù)據(jù)庫文件36應用軟件開發(fā)實踐課程報告一.網絡爬蟲的簡介定義網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區(qū)中間,更經常的稱為網頁追逐 者),是一種按照一定的規(guī)則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用 的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。產生背景隨著網絡的迅速發(fā)展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一 個巨大的挑戰(zhàn)。搜索引擎(Search Engine),例如傳統(tǒng)的通用搜索引擎A
14、ltaVista,Yahoo!和 Google等,作為一個輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南。但是, 這些通用性搜索引擎也存在著一定的局限性,如:不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結 果包含大量用戶不關心的網頁。通用搜索引擎的目標是盡可能大的網絡覆蓋率,有限的搜索引擎服務器資源與無限的網 絡數(shù)據(jù)資源之間的矛盾將進一步加深。萬維網數(shù)據(jù)形式的豐富和網絡技術的不斷發(fā)展,圖片、數(shù)據(jù)庫、音頻、視頻多媒體等不 同數(shù)據(jù)大量出現(xiàn),通用搜索引擎往往對這些信息含量密集且具有一定結構的數(shù)據(jù)無能為力, 不能很好地發(fā)現(xiàn)和獲取。通用搜索引擎大多提供基于關鍵字的檢索
15、,難以支持根據(jù)語義信息提出的查詢。為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載 網頁的程序,它根據(jù)既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所 需要的信息。與通用爬蟲(general purpose web crawler)不同,聚焦爬蟲并不追求大的覆蓋, 而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢準備數(shù)據(jù)資源。組成在網絡爬蟲的系統(tǒng)框架中,主過程由控制器,解析器,資源庫三部分組成。控制器的主要工 作是負責給多線程中的各個爬蟲線程分配工作任務。解析器的主要工作是下載網頁,進行頁 面的處理,主要是將一些JS腳本標簽、CS
16、S代碼內容、空格字符、HTML標簽等內容處理 掉,爬蟲的基本工作是由解析器完成。資源庫是用來存放下載到的網頁資源,一般都采用大 型的數(shù)據(jù)庫存儲,如Oracle數(shù)據(jù)庫,并對其建立索引??刂破骺刂破魇蔷W絡爬蟲的中央控制器,它主要是負責根據(jù)系統(tǒng)傳過來的URL鏈接,分配一線程, 第1頁應用軟件開發(fā)實踐課程報告然后啟動線程調用爬蟲爬取網頁的過程。解析器解析器是負責網絡爬蟲的主要部分,其負責的工作主要有:下載網頁的功能,對網頁的文本 進行處理,如過濾功能,抽取特殊HTML標簽的功能,分析數(shù)據(jù)功能。資源庫主要是用來存儲網頁中下載下來的數(shù)據(jù)記錄的容器,并提供生成索引的目標源。中大型的數(shù) 據(jù)庫產品有:Oracl
17、e、Sql Server等。分類通用網絡爬蟲通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),爬行對象從一些種子URL擴 充到整個Web,主要為門戶站點搜索引擎和大型Web服務提供商采集數(shù)據(jù)。由于商業(yè) 原因,它們的技術細節(jié)很少公布出來。這類網絡爬蟲的爬行范圍和數(shù)量巨大,對于爬行速 度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時由于待刷新的頁面太多, 通常采用并行工作方式,但需要較長時間才能刷新一次頁面。雖然存在一定缺陷,通用網 絡爬蟲適用于為搜索引擎搜索廣泛的主題,有較強的應用價值。焦網絡爬蟲聚焦網絡爬蟲(Focused Crawler),又稱主題網絡爬蟲(To
18、pical Crawler),是指選 擇性地爬行那些與預先定義好的主題相關頁面的網絡爬四8。和通用網絡爬蟲相比,聚焦 爬蟲只需要爬行與主題相關的頁面,極大地節(jié)省了硬件和網絡資源,保存的頁面也由于數(shù)量 少而更新快,還可以很好地滿足一些特定人群對特定領域信息的需求。增量式網絡爬蟲增量式網絡爬蟲(Incremental Web Crawler)是指對已下載網頁采取增量式更 新和只爬行新產生的或者已經發(fā)生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面 是盡可能新的頁面。和周期性爬行和刷新頁面的網絡爬蟲相比,增量式爬蟲只會在需要的 時候爬行新產生或發(fā)生更新的頁面,并不重新下載沒有發(fā)生變化的頁面,可有
19、效減少數(shù)據(jù) 下載量,及時更新已爬行的網頁,減小時間和空間上的耗費,但是增加了爬行算法的復雜度 和實現(xiàn)難度。增量式網絡爬蟲的體系結構包含爬行模塊、排序模塊、更新模塊、本地頁面 集、待爬行URL集以及本地頁面URL集。Deep Web 爬蟲Web頁面按存在方式可以分為表層網頁(Surface Web)和深層網頁(Deep Web,也稱Invisible Web Pages或Hidden Web)。表層網頁是指傳統(tǒng)搜索引擎可以索引的頁第2頁應用軟件開發(fā)實踐課程報告面,以超鏈接可以到達的靜態(tài)網頁為主構成的Web頁面。Deep Web是那些大部分內容 不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶
20、提交一些關鍵詞才能獲得的 Web頁面。例如那些用戶注冊后內容才可見的網頁就屬于Deep Web。2000年Bright Planet指出:Deep Web中可訪問信息容量是Surface Web的幾百倍,是互聯(lián)網上最大、 發(fā)展最快的新型信息資源。發(fā)展趨勢目前,大多數(shù)的搜索引擎都是基于關鍵詞的搜索引擎。基于關鍵字匹配的搜索技術有較大的 局限性:首先,它不能區(qū)分同形異義。其次,不能聯(lián)想到關鍵字的同義詞。Web商業(yè)化 至今,搜索引擎始終保持著網絡上被使用最多的服務項目的地位,然而,隨著網上內容的爆 炸式增長和內容形式花樣的不斷翻新,搜索引擎越來越不能滿足挑剔的網民們的各種信息需 求。 搜索引擎的發(fā)展
21、面臨著兩大難題:一是如何跟上Internet的發(fā)展速度,二是如何為用 戶提供更精確的查詢結果。所以,傳統(tǒng)的引擎不能適應信息技術的高速發(fā)展,新一代智能 搜索引擎作為一種高效搜索引擎技術的在當今的網絡信息時代日益引起業(yè)界人士的關注。搜 索引擎己成為一個新的研究、開發(fā)領域。因為它要用到信息檢索、人工智能、計算機網絡、 分布式處理、數(shù)據(jù)庫、數(shù)據(jù)挖掘、數(shù)字圖書館、自然語言處理等多領域的理論和技術,所以 具有綜合性和挑戰(zhàn)性。又由于搜索引擎有大量的用戶,有很好的經濟價值,所以引起了世 界各國計算機科學界和信息產業(yè)界的高度關注,目前的研究、開發(fā)十分活躍,并出現(xiàn)了很多 值得注意的動向。二.環(huán)境需求及配置Java
22、版本及配置應用軟件開發(fā)實踐課程報告圖1 Java版本號其甫桀蛇芟至X變量/時:2LASSPATH主呈面V):. ;,四 區(qū):H L】尸!A% a_l 心卜L! 一/二。匚 s 足 r瀏覽目前口)洌.送走取消圖2 Java配置一X費量/時:AVA_HOME立呈面%:瀏覽目割口). J 七引rrJ小gi北1鬻瀏賢文件現(xiàn)定取消圖3Java配置二應用軟件開發(fā)實踐課程報告編輯環(huán)境玄厘X| %System Roat%syst em32新建(Nj%SystemRjoot%Sy5tem Rout 頰System 3 2Wbem%SSTEM R O0T9fcSystem 32Wind ws -owe r5hel
23、ly1.tA相宿舊C:Program FileBJavajdki .7.0_BOfciin瀏覽刪除C;Program F i 1 esUavajreTMjin %L1AVEN_HOME%birD:My5QLmysql 5.7.17-winY64tiin上移U)下第0確定取消_|圖4 Java配置三Eclipse 配置下載Eclipse壓縮包,并將Eclipse壓縮包解壓區(qū)忤h,主R共:V2012015/ira a照.3GD fE HTML Do.-13 KBJOiyi/Za#Hfl .35De HTML Do.5 KBms日沖*歸國歸司. 3*mnh 產韭 g國仃內街BMi T-efr*由印咕
24、國i皿, 1 KLfeatw2017/6/21 BMijfpi2017/6/21 BMi.里什*2017/6/21 BMiFileRjKVr-wdnip國i皿J irdipwip婚慶Kt現(xiàn) 1#1,如 BMi曜文F1史PtifKt5 jitM2017/6/21 BMi蛇叮黨史畫 Epv/u2012fW 早闋| Ertpwjri2O17/WZ1 早用叁 OneDnw,I Ertpwc.Exe-HHWW早闋1 f u + 1 * 55 23 edlpe Ep*-sflO.html no1ire.html MS1340圖5解壓后應用軟件開發(fā)實踐課程報告Maven 配置下載maven的bin,在apa
25、che官方網站可以下載。I jOJHavei) 3.0.5Ths is a stable mcEet 3.0.x of Maven far pr-jert ttiat cant iparade tn Mavsn 3.1 yW.MafanL日eery tar.oz)apactiibiiri.tar.gzapache dYiavcn J.D.5 tin.tar.gzjridSaoiaaic maven MO.M tin.nr.gz.35CMartenBinary zip;padic maMcn 3.C J iiin.sipparhe iayEn3.D.S In.7ra.rrbdS中achE E收n
26、 三口.三 birLzip.ascMaven 3.11.5 i&aLFce tar.gz)apsdie-fnavenS.C. S-srE.tsr-Dzapactie-Eclipse Marketplace應用軟件開發(fā)實踐課程報告搜索關鍵字maven到插件Maven Integration for Eclipse并點擊安裝即可,如下圖:2 Eclipse MarketplaceEclipse MairketplacoSelect solutions to instalL Press Finish t口 proceed with installation.Press the information
27、 button to see a detailed overview and a link to mare iinformation,X士史3匚卜 Recent Popular Installed 耳 Language Server Protacal 1 DI (May Newsl.Finch | mavenAHI Markets7 應用軟件開發(fā)實踐課程報告搜索關鍵字maven到插件Maven Integration for Eclipse并點擊安裝即可,如下圖:2 Eclipse MarketplaceEclipse MairketplacoSelect solutions to insta
28、lL Press Finish t口 proceed with installation.Press the information button to see a detailed overview and a link to mare iinformation,X士史3匚卜 Recent Popular Installed 耳 Language Server Protacal 1 DI (May Newsl.Finch | mavenAHI Markets7 All CategoriesTycho Build Tools 0,4.1The tyciho build tools help i
29、n tmnawenizing1 your existing OSGi project Simce th史 nManifest firstT approach of tycho still has some loose ends the rTycho Builds, m&re iriifQbylBH SYSTEMS GmbH. EPL t產 h 口 Emvwm Installs: 11.7K (439 last month)InstallMaven Tycho Utilitnes 1.0.0UVe have been helping our client mnigrate to inaven t
30、ycho, and the biggest prablem that we face i與 when filling the parent pom to remember the maven-tycho plwgK, nnom infoby ANOT CONSULTING. EPLEarvEin 口1日用昭n tyczh口 build utilities rclipse build- Installs: 2&1K (1,236 Im與t month)InstallMaven Integration for Eclipse (Luna) 1=5.0m2e provides comprehensi
31、ve Maven inte-gration for Eclipse, Vou can use nnNe tomnAmp hnth -=simnlp nrl miilH-mnrliiIip Havph nrniprt5. PYpnitA UKinpin hi iiIHrMarketplacesFinishCancel圖9在Eclipse中配置maven重啟后,為了使得Eclipse中安裝的Maven插件,同windows中安裝的那個相同,需要讓 eclipse 中的 maven 重新定位一下,點擊 Window - Preference - Maven - Installation - Add進
32、行設置應用軟件開發(fā)實踐課程報告Preferences.圖10配置二三.網絡爬蟲模型的具體設計框架 webmagicWebMagic 概覽WebMagic項目代碼分為核心和擴展兩部分。核心部分(webmagic-core)是一個精簡 的、模塊化的爬蟲實現(xiàn),而擴展部分則包括一些便利的、實用性的功能。WebMagic的架 構設計參照了 Scrapy,目標是盡量的模塊化,并體現(xiàn)爬蟲的功能特點。Webmagic 總體架構WebMagic 的結構分為 Downloader、PageProcessor、Scheduler、Pipeline 四大組件, 并由Spider將它們彼此組織起來。這四大組件對應爬蟲生
33、命周期中的下載、處理、管理和 持久化等功能。WebMagic的設計參考了 Scapy,但是實現(xiàn)方式更Java化一些。而Spider則將這幾個組件組織起來,讓它們可以互相交互,流程化的執(zhí)行,可以認為Spider 是一個大的容器,它也是WebMagic邏輯的核心。WebMagic總體架構圖如下:應用軟件開發(fā)實踐課程報告SpiderRetjuestUI L! Mi*能SpiderRetjuestUI L! Mi*能圖11 WebMagic總體架構3.1.3 Webmagic 項目組成WebMagic項目代碼包括幾個部分,在根目錄下以不同目錄名分開。它們都是獨立的Maven 項目。主要部分WebMag
34、ic主要包括兩個包,這兩個包經過廣泛實用,已經比較成熟:webmagic-corewebmagic-core是WebMagic核心部分,只包含爬蟲基本模塊和基本抽取器。WebMagic-core 的目標是成為網頁爬蟲的一個教科書般的實現(xiàn)。webmagic-extensionwebmagic-extension是WebMagic的主要擴展模塊,提供一些更方便的編寫爬蟲的工具。包括注解格式定義爬蟲、JSON、分布式等支持。外圍功能除此之外,WebMagic項目里還有幾個包,這些都是一些實驗性的功能,目的只是提供一 些與外圍工具整合的樣例。因為精力有限,這些包沒有經過廣泛的使用和測試,推薦使 用方式
35、是自行下載源碼,遇到問題后再修改。webmagic-samples第10頁應用軟件開發(fā)實踐課程報告這里是作者早期編寫的一些爬蟲的例子。因為時間有限,這些例子有些使用的仍然是老 版本的API,也可能有一些因為目標頁面的結構變化不再可用了。最新的、精選過的例子, 請看 webmaigc-core 的 cessor.example 包和 webmaigc-core 的 us.codecraft.webmagic.example 包webmagic-scriptsWebMagic對于爬蟲規(guī)則腳本化的一些嘗試,目標是讓開發(fā)者脫離Java語言,來進行簡單、 快速的開發(fā)。同時強調腳本的共享。webmagic
36、-seleniumWebmMgic與Selenium結合的模塊。Selenium是一個模擬瀏覽器進行頁面渲染的工具,WebMagic依賴Selenium進行動態(tài)頁面的抓取。webmagic-saxonWebMagic與Saxon結合的模塊。Saxon是一個XPath、XSLT的解析工具,webmagic依賴 Saxon來進行XPath2.0語法解析支持。webmagic-avalonwebmagic-avalon是一個特殊的項目,它想基于WebMagic實現(xiàn)一個產品化的工具,涵蓋 爬蟲的創(chuàng)建、爬蟲的管理等后臺工具。網頁搜索策略廣度優(yōu)先搜索策略是指在抓取過程中,在完成當前層次的搜索后,才進行下一
37、層次的搜索。 該算法的設計和實現(xiàn)相對簡單。在目前為覆蓋盡可能多的網頁,一般使用廣度優(yōu)先搜索方法。 也有很多研究將廣度優(yōu)先搜索策略應用于聚焦爬蟲中。其基本思想是認為與初始URL在一 定鏈接距離內的網頁具有主題相關性的概率很大。另外一種方法是將廣度優(yōu)先搜索與網頁過 濾技術結合使用,先用廣度優(yōu)先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺 點在于,隨著抓取網頁的增多,大量的無關網頁將被下載并過濾,算法的效率將變低。拓撲分析算法基于網頁之間的鏈接,通過已知的網頁或數(shù)據(jù),來對與其有直接或間接鏈接關系的對象(可 以是網頁或網站等)作出評價的算法。又分為網頁粒度、網站粒度和網頁塊粒度這三種。1網頁(
38、Webpage)粒度的分析算法PageRank和HITS算法是最常見的鏈接分析算法,兩者都是通過對網頁間鏈接度的遞歸和 規(guī)范化計算,得到每個網頁的重要度評價。PageRank算法雖然考慮了用戶訪問行為的隨機 性和Sink網頁的存在,但忽略了絕大多數(shù)用戶訪問時帶有目的性,即網頁和鏈接與查詢主 題的相關性。針對這個問題,HITS算法提出了兩個關鍵的概念:權威型網頁(authority) 和中心型網頁(hub)。第11頁應用軟件開發(fā)實踐課程報告基于鏈接的抓取的問題是相關頁面主題團之間的隧道現(xiàn)象,即很多在抓取路徑上偏離主題的 網頁也指向目標網頁,局部評價策略中斷了在當前路徑上的抓取行為。文獻21提出了
39、一種 基于反向鏈接(BackLink)的分層式上下文模型。0巾6近Model),用于描述指向目標網頁 一定物理跳數(shù)半徑內的網頁拓撲圖的中心Layer0為目標網頁,將網頁依據(jù)指向目標網頁的 物理跳數(shù)進行層次劃分,從外層網頁指向內層網頁的鏈接稱為反向鏈接。2網站粒度的分析算法網站粒度的資源發(fā)現(xiàn)和管理策略也比網頁粒度的更簡單有效。網站粒度的爬蟲抓取的關鍵之 處在于站點的劃分和站點等級(SiteRank)的計算。SiteRank的計算方法與PageRank類似, 但是需要對網站之間的鏈接作一定程度抽象,并在一定的模型下計算鏈接的權重。網站劃分情況分為按域名劃分和按IP地址劃分兩種。文獻18討論了在分布
40、式情況下,通 過對同一個域名下不同主機、服務器的IP地址進行站點劃分,構造站點圖,利用類似 PageRank的方法評價SiteRank。同時,根據(jù)不同文件在各個站點上的分布情況,構造文 檔圖,結合SiteRank分布式計算得到DocRank。文獻18證明,利用分布式的SiteRank 計算,不僅大大降低了單機站點的算法代價,而且克服了單獨站點對整個網絡覆蓋率有限的 缺點。附帶的一個優(yōu)點是,常見PageRank造假難以對SiteRank進行欺騙。3網頁塊粒度的分析算法在一個頁面中,往往含有多個指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關 網頁的,或根據(jù)網頁的鏈接錨文本表明其具有較高重要
41、性。但是,在PageRank和HITS算 法中,沒有對這些鏈接作區(qū)分,因此常常給網頁分析帶來廣告等噪聲鏈接的干擾。在網頁塊 級別(Block level)進行鏈接分析的算法的基本思想是通過VIPS網頁分割算法將網頁分為不 同的網頁塊(page block),然后對這些網頁塊建立page to block和block to page的鏈接矩 陣,分別記為Z和X。于是,在page to page圖上的網頁塊級別的PageRank為?Wp=XxZ; 在block to block圖上的BlockRank為Wb=ZxXE經有人實現(xiàn)了塊級別的PageRank和 HITS算法,并通過實驗證明,效率和準確率
42、都比傳統(tǒng)的對應算法要好。網頁內容分析算法基于網頁內容的分析算法指的是利用網頁內容(文本、數(shù)據(jù)等資源)特征進行的網頁評價。 網頁的內容從原來的以超文本為主,發(fā)展到后來動態(tài)頁面(或稱為Hidden Web)數(shù)據(jù)為主, 后者的數(shù)據(jù)量約為直接可見頁面數(shù)據(jù)(PIW,Publicly Indexable Web)的400500倍。另 一方面,多媒體數(shù)據(jù)、Web Service等各種網絡資源形式也日益豐富。因此,基于網頁內容 的分析算法也從原來的較為單純的文本檢索方法,發(fā)展為涵蓋網頁數(shù)據(jù)抽取、機器學習、數(shù) 據(jù)挖掘、語義理解等多種方法的綜合應用。本節(jié)根據(jù)網頁數(shù)據(jù)形式的不同,將基于網頁內容 的分析算法,歸納以下
43、三類:第一種針對以文本和超鏈接為主的無結構或結構很簡單的網頁; 第二種針對從結構化的數(shù)據(jù)源(如RDBMS)動態(tài)生成的頁面,其數(shù)據(jù)不能直接批量訪問; 第三種針對的數(shù)據(jù)界于第一和第二類數(shù)據(jù)之間,具有較好的結構,顯示遵循一定模式或風格, 且可以直接訪問?;谖谋镜木W頁分析算法1)純文本分類與聚類算法第12頁應用軟件開發(fā)實踐課程報告很大程度上借用了文本檢索的技術。文本分析算法可以快速有效的對網頁進行分類和聚類, 但是由于忽略了網頁間和網頁內部的結構信息,很少單獨使用。2)超文本分類和聚類算法根據(jù)網頁鏈接網頁的相關類型對網頁進行分類,依靠相關聯(lián)的網頁推測該網頁的類型爬行策略下述的三種網絡特征,造成了設計
44、網頁爬蟲抓取策略變得很難:它巨大的數(shù)據(jù)量;它快速的更新頻率;動態(tài)頁面的產生它們三個特征一起產生了很多種類的爬蟲抓取鏈接。巨大的數(shù)據(jù)量暗示了爬蟲,在給定的時間內,只可以抓取所下載網絡的一部分,所以,它需 要對它的抓取頁面設置優(yōu)先級;快速的更新頻率說明在爬蟲抓取下載某網站一個網頁的時 候,很有可能在這個站點又有新的網頁被添加進來,或者這個頁面被更新或者刪除了。最近新增的很多頁面都是通過服務器端腳本語言產生的,無窮的參數(shù)組合也增加了爬蟲抓取 的難度,只有一小部分這種組合會返回一些獨特的內容。例如,一個很小照片存儲庫僅僅通 過get方式可能提供就給用戶三種操作方式。如果這里存著四種分類方式,三種縮略圖
45、方式, 兩種文件格式,和一個禁止用戶提供內容的選項,那么,同樣的內容就可以通過48種方式 訪問。這種數(shù)學組合給網絡爬蟲創(chuàng)造的難處就是,為了獲取不同的內容,他們必須篩選無窮 僅有微小變化的組合。正如愛德華等人所說的:“用于檢索的帶寬不是無限的,也不是免費的;所以,如果引入衡 量爬蟲抓取質量或者新鮮度的有效指標的話,不但伸縮性,連有效性都將變得十分必要”(愛 德華等人,2001年)。一個爬蟲就必須小心的選擇下一步要訪問什么頁面。網頁爬蟲的行為 通常是四種策略組合的結果。選擇策略,決定所要下載的頁面;重新訪問策略,決定什么時候檢查頁面的更新變化;平衡禮貌策略,指出怎樣避免站點超載;并行策略,指出怎么
46、協(xié)同達到分布式抓取的效果;選擇策略:就現(xiàn)在網絡資源的大小而言,即使很大的搜索引擎也只能獲取網絡上可得到資源的一小部 分。由勞倫斯河蓋爾斯共同做的一項研究指出,沒有一個搜索引擎抓取的內容達到網絡的 16%(勞倫斯河蓋爾斯,2001)。網絡爬蟲通常僅僅下載網頁內容的一部分,但是大家都還是 強烈要求下載的部分包括最多的相關頁面,而不僅僅是一個隨機的簡單的站點。這就要求一個公共標準來區(qū)分網頁的重要程度,一個頁面的重要程度與他自身的質量有關, 與按照鏈接數(shù)、訪問數(shù)得出的受歡迎程度有關,甚至與他本身的網址(后來出現(xiàn)的把搜索放 在一個頂級域名或者一個固定頁面上的垂直搜索)有關。設計一個好的搜索策略還有額外的
47、 困難,它必須在不完全信息下工作,因為整個頁面的集合在抓取時是未知的。第13頁應用軟件開發(fā)實踐課程報告Cho等人(Cho et al, 1998)做了第一份抓取策略的研究。他們的數(shù)據(jù)是斯坦福大學網站 中的18萬個頁面,使用不同的策略分別模仿抓取。排序的方法使用了廣度優(yōu)先,后鏈計數(shù), 和部分pagerank算法。計算顯示,如果你想要優(yōu)先下載pagerank高的頁面,那么,部分 PageRank策略是比較好的,其次是廣度優(yōu)先和后鏈計數(shù)。并且,這樣的結果僅僅是針對一 個站點的。Najork和Wiener (Najork and Wiener, 2001采用實際的爬蟲,對3.28億個網頁,采用廣度 優(yōu)
48、先研究。他們發(fā)現(xiàn)廣度優(yōu)先會較早的抓到PageRank高的頁面(但是他們沒有采用其他 策略進行研究)。作者給出的解釋是:“最重要的頁面會有很多的主機連接到他們,并且那些 鏈接會較早的發(fā)現(xiàn),而不用考慮從哪一個主機開始?!盇biteboul (Abiteboul等人,2003),設計了一種基于OPIC (在線頁面重要指數(shù))的抓取戰(zhàn) 略。在OPIC中,每一個頁面都有一個相等的初始權值,并把這些權值平均分給它所指向的 頁面。這種算法與Pagerank相似,但是他的速度很快,并且可以一次完成。OPIC的程序 首先抓取獲取權值最大的頁面,實驗在10萬個幕指分布的模擬頁面中進行。并且,實驗沒 有和其它策略進行
49、比較,也沒有在真正的WEB頁面測試。Boldi等人(Boldi et al., 2004)的模擬檢索實驗進行在 從.it網絡上取下的4000萬個頁面和從 webbase得至勺1億個頁面上,測試廣度優(yōu)先和深度優(yōu)先,隨機序列和有序序列。比較的 基礎是真實頁面pageRank值和計算出來的pageRank值的接近程度。令人驚奇的是,一 些計算pageRank很快的頁面(特別明顯的是廣度優(yōu)先策略和有序序列)僅僅可以達到很小 的接近程度。Baeza-Yates等人(Baeza-Yates et al., 2005)在從.gr域名和.cl域名子網站上獲取的300萬 個頁面上模擬實驗,比較若干個抓取策略。結
50、果顯示OPIC策略和站點隊列長度,都比廣度 優(yōu)先要好;并且如果可行的話,使用之前的爬行抓取結果來指導這次抓取,總是十分有效的。 Daneshpajouh等人(Daneshpajouh et al., 2008設計了一個用于尋找好種子的社區(qū)。它們從 來自不同社區(qū)的高PageRank頁面開始檢索的方法,迭代次數(shù)明顯小于使用隨機種子的檢 索。使用這種方式,可以從以前抓取頁面之中找到好的種子,使用這些種子是十分有效的。 限定訪問鏈接一個爬蟲可能僅僅想找到html頁面的種子而避免其他的文件類型。為了僅僅得到html的資 源,一個爬蟲可以首先做一個http head的請求,以在使用request方法獲取所
51、有的資源之 前,決定這個網絡文件的類型。為了避免要發(fā)送過多的head請求,爬蟲可以交替的檢查url 并且僅僅對以html, htm和反斜杠結尾的文件發(fā)送資源請求。這種策略會導致很多的html 資源在無意中錯過,一種相似的策略是將網絡資源的擴展名同已知是html文件類型的一組 擴展名(如.html,.htm,.asp,.php,.aspx反斜杠)進行比較。一些爬蟲也會限制對任何含有“? ”的資源(這些是動態(tài)生成的)進行獲取請求,以避免蜘蛛 爬行在某一個站點中陷入下載無窮無盡的URL的困境。路徑檢索一些爬蟲會盡可能多的嘗試下載一個特定站點的資源。Cothey(Cothey,2004)引入了一種路
52、徑檢索的爬蟲,它會嘗試抓取需要檢索資源的所有URL。例如,給定一個種子地址:它將 會嘗試檢索/hamster/menkey/,/hamsterD/。Cothey發(fā)現(xiàn)路徑檢索對發(fā)現(xiàn)獨立資源,或者第14頁應用軟件開發(fā)實踐課程報告一些通常爬蟲檢索不到的的連接是非常有效的。一些路徑檢索的爬蟲也被稱為收割機軟件,因為他們通常用于收割或者收集所有的內容,可 能是從特定的頁面或者主機收集相冊的照片。聚焦抓取爬蟲所抓取頁面的重要程度也可以表述成它與給定查詢之間相似程度的函數(shù)。網絡爬蟲嘗試 下載相似頁面,可以稱為聚焦檢索或者主題檢索。關于主題檢索和聚焦檢索的概念,最早是 由 Menczer(Menczer 19
53、97; Menczer and Belew, 1998)和 Chakrabarti 等人首先提出來 的 (Chakrabarti et al., 1999)。聚焦檢索的主要問題是網頁爬蟲的使用環(huán)境,我們希望在實際下載頁面之前,就可以知道給 定頁面和查詢之間的相似度。一個可能的方法就是在鏈接之中設置錨點,這就是在早期時候, Pinkerton(Pinkerton,1994)曾經在一個爬蟲中采用的策略。Diligenti 等人(Diligenti 等 人,2000)建議使用已經抓取頁面的內容去推測查詢和未訪問頁的相似度。一個聚焦查詢 的表現(xiàn)的好壞主要依賴于查詢主題內容的豐富程度,通常還會依賴頁面查
54、詢引擎提供的查詢 起點。抓取深層的網頁很多的頁面隱藏的很深或隱藏在在看不到的網絡之中。這些頁面通常只有在向數(shù)據(jù)庫提交查 詢的時候才可以訪問到,如果沒有鏈接指向他們的話,一般的爬蟲是不能訪問到這些頁面的。 谷歌站點地圖協(xié)議和mod oai(Nelson等人,2005)嘗試允許發(fā)現(xiàn)這些深層次的資源。深層頁面抓取器增加了抓取網頁的鏈接數(shù)。一些爬蟲僅僅抓取形如a href=u鏈接。某些 情況下,例如Googlebot,WEB抓取的是所有超文本所包含的內容,標簽和文本。WEB3.0檢索Web3.0為下一代搜索技術定義了更先進的技術和新的準則,可以概括為語義網絡和網站模 板解析的概念。第三代檢索技術將建立
55、在人機巧妙的聯(lián)系的基礎上。重新訪問策略網絡具有動態(tài)性很強的特性。抓取網絡上的一小部分內容可能會花費真的很長的時間,通常 用周或者月來衡量。當爬蟲完成它的抓取的任務以后,很多操作是可能會發(fā)生的,這些操作 包括新建,更新和刪除。從搜索引擎的角度來看,不檢測這些事件是有成本的,成本就是我們僅僅擁有一份過時的資 源。最常使用的成本函數(shù),是新鮮度和過時性(2000年,Cho和Garcia-Molina) 新鮮度:這是一個衡量抓取內容是不是準確的二元值。在時間t內,倉庫中頁面p的新鮮度 是這樣定義的:產(e_ fl Ifp* 的比亂岫 的 I壯場1。哂;翡七新鮮度過時性:這是一個衡量本地已抓取的內容過時程
56、度的指標。在時間t時,倉庫中頁面p的時 效性的定義如下:過時性0直0 is sm 丑聞五姐d工Fmr t過時性-RE港口匕口二 *31。3 p在頁面抓取中,新鮮度和過時性的發(fā)展第15頁應用軟件開發(fā)實踐課程報告Coffman等人(Edward G. Coffman 1998)是從事爬蟲對象定義的,他們提出了一個相當 于新鮮度的概念,但是使用了不同的措詞:他們建議爬蟲必須最小化過時頁面部分。他們指 出網絡爬行的問題就相當于多個隊列,一個投票系統(tǒng);這里,爬蟲是服務器,不同的站點是 隊列。頁面修改是到達的顧客,頁面切換的時間是頁面進入一個單一站點的間隔。在這個模 型下,每一個顧客在投票系統(tǒng)的平均時間,
57、相當于爬蟲的平均過時性。爬蟲的目標是盡可能高的提高頁面的新鮮度,同時降低頁面的過時性。這一目標并不是完全 一樣的,第一種情況,爬蟲關心的是有多少頁面時過時的;在第二種情況,爬蟲關心的頁面 過時了多少。兩種最簡單的重新訪問策略是由Cho和Garcia-Molina研究的(劭。和Garcia-Molina, 2003):統(tǒng)一策略:使用相同的頻率,重新訪問收藏中的所有的鏈接,而不考慮他們更新頻率。正比策略:對變化越多的網頁,重新訪問的頻率也越高。網頁訪問的頻率和網頁變化的頻率 直接相關。(兩種情況下,爬蟲的重新抓取都可以采用隨機方式,或者固定的順序)Cho和Garcia-Molina證明了一個出人意
58、料的結果。以平均新鮮度方式衡量,統(tǒng)一策略在模 擬頁面和真實的網絡抓取中都比正比策略出色。對于這種結果的解釋是:當一個頁面變化太 快的時候,爬蟲將會將會在不斷的嘗試重新抓取而浪費很多時間,但是卻還是不能保證頁面 的新鮮度。為了提高頁面的新鮮度,我們應該宣判變化太快的頁面死罪( Cho和Garcia-Molina, 2003a)。最佳的重新訪問策略既不是統(tǒng)一策略,也不是正比策略;保持平均頁面新鮮度高 的最佳方法策略包括忽略那些變化太快的頁面,而保持頁面平均過時性低的方法則是對每一 頁按照頁面變化率單調變化的策略訪問。兩種情況下,最佳的策略較正比策略,都更接近統(tǒng) 一策略。正如Coffman等人(Ed
59、ward G.Coffman, 1998)所注意到的:“為了最小化頁面 過時的時間,對任一個頁面的訪問都應該盡可能的均勻間隔地訪問?!睂τ谥匦略L問的詳盡 的策略在大體上是不可以達到的,但是他們可以從數(shù)學上得到,因為他們依賴于頁面的變化。(Cho和Garcia-Molina,2003a)指出指數(shù)變化是描述頁面變化的好方法,同時(Ipeirotis 等人,2005)指出了怎么使用統(tǒng)計工具去發(fā)現(xiàn)適合這些變化的參數(shù)。注意在這里的重新訪 問策略認為每一個頁面都是相同的(網絡上所有的頁面價值都是一樣的)這不是現(xiàn)實的情況, 所以,為了獲取更好的抓取策略,更多有關網頁質量的信息應該考慮進去。平衡禮貌策略爬蟲相
60、比于人,可以有更快的檢索速度和更深的層次,所以,他們可能使一個站點癱瘓。不 需要說一個單獨的爬蟲一秒鐘要執(zhí)行多條請求,下載大的文件。一個服務器也會很難響應多 線程爬蟲的請求。就像Koster(Koster,1995)所注意的那樣,爬蟲的使用對很多工作都是很有用的,但是 對一般的社區(qū),也需要付出代價。使用爬蟲的代價包括:網絡資源:在很長一段時間,爬蟲使用相當?shù)膸捀叨炔⑿械毓ぷ?。服務器超載:尤其是對給定服務器的訪問過高時。質量糟糕的爬蟲,可能導致服務器或者路由器癱瘓,或者會嘗試下載自己無法處理的頁第16頁應用軟件開發(fā)實踐課程報告面。個人爬蟲,如果過多的人使用,可能導致網絡或者服務器阻塞。對這些問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股東合作協(xié)議
- 云南省小額信貸模式的多維度剖析與發(fā)展路徑探究
- 初三化學化學符號意義試卷及答案
- OsamiR159新靶標基因對水稻白葉枯病菌抗性負調控的機制解析
- 4層螺旋CT血管成像技術在肝動脈解剖變異診斷中的應用與價值探究
- 導航原理(第3版)課件 第六章-主動式測速-被動式測速-
- 基因編程基礎知識培訓課件
- 三標培訓試題及答案
- 營口職業(yè)考試試題及答案
- 分母分子考試題及答案
- JG/T 491-2016建筑用網格式金屬電纜橋架
- CJ/T 152-2016薄壁不銹鋼卡壓式和溝槽式管件
- 幕墻氣密性水密性現(xiàn)場檢測方法與缺陷修復
- GB/T 17642-2025土工合成材料非織造布復合土工膜
- 2025-2030年中國表面等離子體共振(SPR)行業(yè)市場深度調研及行業(yè)投資與發(fā)展前景研究報告
- 視頻素材授權協(xié)議書
- DB42-T 1989-2023 城鄉(xiāng)公益性安葬設施建設與管理規(guī)范
- 精神衛(wèi)生法知識講座課件
- GB/T 45460-2025鋼絲繩在無軸向載荷條件下鋼絲繩徑向剛度的測定
- 2025-2030樂器產業(yè)規(guī)劃專項研究報告
- 電力行業(yè)安全員工作職責
評論
0/150
提交評論