




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第頁數(shù)據(jù)爬蟲什么意思目前,大多數(shù)大型爬蟲系統(tǒng)采納的是分布式方式,但仍然不能滿足用戶的實際必須要。下面是我為您整理的關(guān)于數(shù)據(jù)爬蟲什么意思,希望對你有所幫助。
數(shù)據(jù)爬蟲什么意思
數(shù)據(jù)爬蟲是請求網(wǎng)站并提取數(shù)據(jù)的自動化程序。網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人,在FOAF社區(qū)中間,更常常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
爬蟲基本流程
發(fā)起請求:通過HTTP庫向目標(biāo)站點發(fā)起請求,即發(fā)送一個Request,請求可以包涵額外的headers等信息,等待服務(wù)器響應(yīng)。
獲取響應(yīng)內(nèi)容:如果服務(wù)器能正常響應(yīng),會得到一個Response,Response的內(nèi)容便是所要獲取的頁面內(nèi)容,類型可能有HTML,Json字符串,二進制數(shù)據(jù)(如圖片視頻)等類型。
解析內(nèi)容:得到的內(nèi)容可能是HTML,可以用正則表達式、網(wǎng)頁解析庫進行解析??赡苁荍son,可以直接轉(zhuǎn)為Json對象解析,可能是二進制數(shù)據(jù),可以做儲存或者進一步的處理。
儲存數(shù)據(jù):儲存形式多樣,可以存為文本,也可以儲存至數(shù)據(jù)庫,或者儲存特定格式的文件。
網(wǎng)絡(luò)爬蟲都能做什么?
網(wǎng)絡(luò)爬蟲是一種程序,主要用于搜索引擎,它將一個網(wǎng)站的所有內(nèi)容與鏈接進行閱讀,并建立相關(guān)的全文索引到數(shù)據(jù)庫中,然后跳到另一個網(wǎng)站.樣子好像一只大蜘蛛.
當(dāng)人們在網(wǎng)絡(luò)上(如google)搜索關(guān)鍵字時,其實就是比對數(shù)據(jù)庫中的內(nèi)容,找出與用戶相符合的.網(wǎng)絡(luò)爬蟲程序的質(zhì)量決定了搜索引擎的能力,如google的搜索引擎顯然要比百度好,就是因為它的網(wǎng)絡(luò)爬蟲程序高效,〔編程〕結(jié)構(gòu)好.
爬蟲可以爬取ajax信息么
網(wǎng)頁上有一些異步加載的數(shù)據(jù),爬取這些數(shù)據(jù)有兩種方法:使用模擬瀏覽器(問題1中描述過了),或者分析ajax的請求,自己生成ajax請求的url,獲取返回的數(shù)據(jù)。如果是自己生成ajax請求,使用開源爬蟲的意義在哪里?其實是要用開源爬蟲的線程池和URL〔管理〕功能(比如斷點爬取)。
如果我已經(jīng)可以生成我所必須要的ajax請求(列表),如何用這些爬蟲來對這些請求進行爬取?
爬蟲往往都是〔制定〕成廣度遍歷或者深度遍歷的模式,去遍歷靜態(tài)或者動態(tài)頁面。爬取ajax信息屬于deepweb(深網(wǎng))的范疇,雖然大多數(shù)爬蟲都不直接支持。但是也可以通過一些方法來完成。比如WebCollector使用廣度遍歷來遍歷網(wǎng)站。爬蟲的第一輪爬取就是爬取種子集合(seeds)中的所有url。簡單來說,就是將生成的ajax請求作為種子,放入爬蟲。用爬蟲對這些種子,進行深度為1的廣度遍歷(默認就是廣度遍歷)。
爬蟲怎么爬取要登陸的網(wǎng)站?
這些開源爬蟲都支持在爬取時指定cookies,模擬登陸主要是靠cookies。至于cookies怎么獲取,不是爬蟲管的事情。你可以手動獲取、用請求模擬登陸或者用模擬瀏覽器自動登陸獲取cookie。
爬蟲怎么抽取網(wǎng)頁的信息?
開源爬蟲一般都會集成網(wǎng)頁抽取工具。主要支持兩種規(guī)范:CSSSELECTOR和XPATH。至于哪個好,這里不評價。
爬蟲怎么儲存網(wǎng)頁的信息?
有一些爬蟲,自帶一個模塊負責(zé)持久化。比如webmagic,有一個模塊叫pipeline。通過簡單地配置,可以將爬蟲抽取到的信息,持久化到文件、數(shù)據(jù)庫等。還有一些爬蟲,并沒有直接給用戶提供數(shù)據(jù)持久化的模塊。比如crawler4j和webcollector。讓用戶自己在網(wǎng)頁處理模塊中添加提交數(shù)據(jù)庫的操作。至于使用pipeline這種模塊好不好,就和操作數(shù)據(jù)庫使用ORM好不好這個問題類似,取決于你的業(yè)務(wù)。
數(shù)據(jù)爬蟲綜述
隨著〔大數(shù)據(jù)〕時代的來臨,互聯(lián)網(wǎng)對人類的生活影響越來越深入,已經(jīng)成為人類獲取信息的主要來源之一?;ヂ?lián)網(wǎng)為用戶帶來海量數(shù)據(jù)的同時也帶來了困擾,如何及時獲得有效信息成為研究重點。搜索引擎依據(jù)預(yù)定的策略從互聯(lián)網(wǎng)上發(fā)現(xiàn)和抓取數(shù)據(jù),存入本地;對數(shù)據(jù)進行去噪、抽取和生成索引等處理,最終為用戶提供信息檢索服務(wù),將相關(guān)信息展示給用戶的系統(tǒng)。
爬蟲(Crawler)是搜索引擎架構(gòu)中的最底層模塊,以一定的策略從互聯(lián)網(wǎng)上抓取數(shù)據(jù),并對數(shù)據(jù)進行預(yù)處理,然后將處理后的數(shù)據(jù)提交給搜索引擎其他模塊,數(shù)據(jù)的質(zhì)量和數(shù)量直接影響用戶的體驗。但是,隨著大數(shù)據(jù)時代互聯(lián)網(wǎng)數(shù)據(jù)爆炸式增長,爬蟲抓取數(shù)據(jù)的速度越來越不能滿足實際應(yīng)用的必須要。解決這個問題主要從軟硬件合計:一是升級爬蟲的硬件,使用性能更好的硬件設(shè)備,但性價比不高,且不易擴大;二是利用分布式方式提升爬蟲的并行處理能力,但這種方法會增加爬蟲系統(tǒng)制定的復(fù)雜度。
其次,爬蟲系統(tǒng)還必須解決網(wǎng)頁動態(tài)變化導(dǎo)致本地副本過期的問題。網(wǎng)頁隨時都可能變化,有的幾小時更新一次,爬蟲系統(tǒng)必須及時的發(fā)現(xiàn)并更新本地的網(wǎng)頁,但互聯(lián)網(wǎng)海洋中網(wǎng)頁數(shù)量多、分布廣,爬蟲系統(tǒng)更新一遍必須要數(shù)周甚至更長的時間,使得本地庫中網(wǎng)頁副本時新性較低。因此,一個采集速度快,網(wǎng)頁更新及時的高可靠爬蟲系統(tǒng),不僅僅為搜索引擎提供基礎(chǔ)數(shù)據(jù),也可以為數(shù)據(jù)分析、挖掘提供基礎(chǔ)數(shù)據(jù),從而獲得信息、知識。
Nutch是Apache軟件基金會的一個開源項目,由Java編寫的可擴大和可伸縮的搜索引擎,具有跨平臺的優(yōu)點,使用基于模塊化的思想制定。它基于Hadoop的分布式處理模型確保了系統(tǒng)的性能,類似Eclipse的插件機制有利于用戶自定義擴大Nutch。Nutch為我們研究搜索引擎爬蟲的原理及工作機制提供了一個很好的平臺。
Nutch有兩種運行模式:分布式模式和單機模式。分布式模式采納HDFS作為存儲文件系統(tǒng),并利用MapReduce實現(xiàn)爬蟲抓取網(wǎng)頁的各個環(huán)節(jié),從而使Nutch能夠抓取、存儲海量網(wǎng)頁。Nutch有兩部分:爬蟲和檢索。爬蟲負責(zé)從互聯(lián)網(wǎng)抓取數(shù)據(jù)存儲在本地,索引程序?qū)ψト≡诒镜氐臄?shù)據(jù)建立索引,然后存儲在索引庫。檢索程序接收用戶的查詢請求,搜索索引庫中的索引并返回結(jié)果。
Nutch爬蟲系統(tǒng)是由爬蟲程序以及用于維護相關(guān)數(shù)據(jù)結(jié)構(gòu)的程序組成,采納插件機制進行制定,因此可以很清楚地分開出爬蟲運行各階段的任務(wù)。Nutch的爬蟲通過累積式抓取和增量式抓取方式從互聯(lián)網(wǎng)中將網(wǎng)頁抓下來,分布式模式下將數(shù)據(jù)存儲在HDFS中,為其他模塊提供基礎(chǔ)數(shù)據(jù)。在Hadoop分布式平臺下,Nutch在抓取數(shù)據(jù)的各階段都向Hadoop提交MapReducejob,且這些job都有嚴(yán)格的前后順序關(guān)系。
Nutch爬行工作流程如下:
1)建立初始種子URL集:一般新建一個文件包涵指定的網(wǎng)址,上傳到HDFS上。非全網(wǎng)爬行時,還必須在$NUTCH_HOME/conf/regex-urlfilter.txt文件中設(shè)置超鏈接的過濾規(guī)則,過濾掉不合規(guī)則的URL;
2)Inject:該操作是由org.apache.nutch.crawl包中的Injector類完成,將URL集注入CrawlDB數(shù)據(jù)庫。利用插件URLNormalizers和URLFilters對URL格式化、過濾,消去重復(fù)的URL,并設(shè)置URL狀態(tài)和初始化分值,再更新CrawlDB數(shù)據(jù)庫中相對應(yīng)的內(nèi)容,并標(biāo)記已經(jīng)爬行的URL;
3)Generate:該操作是由org.apache.nutch.crawl包中的Generator類完成,從CrawlDB數(shù)據(jù)庫中取出URL創(chuàng)建抓取列表。當(dāng)一次爬行完成后,Generate階段利用CrawlDB庫中的信息對已爬的URL進行過濾,之后運用Hash算法對URL進行降序排列,結(jié)果存入segments目錄下的一個目錄,目錄名是一個時間戳。循環(huán)爬行多少次,segments目錄下就有多少這樣的文件;
4)Fetch:該操作是由org.apache.nutch.fetcher包中的Fetcher類完成,執(zhí)行抓取,獲取網(wǎng)頁信息。抓取按segments目錄下的URL列表進行,可以自定義爬行的深度(depth)及線程數(shù),適度的增加線程數(shù)可以很好地提升Nutch爬行的效率。網(wǎng)頁結(jié)果存儲在segments相對應(yīng)的目錄下;
5)Parse:該操作是由org.apache.nutch.parse包中的ParseSegment類完成。對Fetch抓到的網(wǎng)頁進行解析,得到parse-data和parse-text兩個目錄。parse-text目錄存儲的是網(wǎng)頁的文本信息,parse-data目錄存儲的是日期、超鏈接、題名等其他網(wǎng)頁信息;
6)UpdateCrawlDB:該操作是由org.apache.nutch.crawl包中的CrawlDb類完成。依據(jù)抓取下來的segments目錄下的內(nèi)容更新CrawlDB數(shù)據(jù)庫,更新包括URL爬行周期、爬行間隔、網(wǎng)頁指紋等,還要將Parse階段解析出的新的URL加入到CrawlDB,為新的抓取提供URL列表;
7)循環(huán)執(zhí)行3~6的步驟,直到depth的值。以上循環(huán)過程可以總結(jié)為"產(chǎn)生/抓取/更新'循環(huán);
8)UpdateLinkDB:Nutch爬行結(jié)束后,更新LinkDB并建立索引。
Nutch網(wǎng)頁更新機制采納的是鄰比法。對第一次采集的網(wǎng)頁,鄰比法設(shè)置其更新時間為初始值。如果該網(wǎng)頁在這個時間內(nèi)更新了,則更新時間縮小一定值;如果沒有更新,則更新時間增加一定值。Nutch網(wǎng)頁更新機制我們稱為Recrawl機制,它提供AdaptiveFetchScheduleclass來管理爬蟲的重新抓取。
Nutch作為開源的搜索引擎框架,能夠得到極速的發(fā)展使用,不僅是因為Nutch具有以上的功能,還有一項重要的機制促使了Nutch的快速發(fā)展,那便是Nutch的插件機制,這種機制極大地方便了研究工作,通過這個擴大機制,能滿足了個性化必須求。Nutch的插件機制的基本思想是借鑒了Eclipse軟件對插件的使用。其優(yōu)點主要體現(xiàn)為以下幾點:
1.可擴大性。插件機制的使用,極大地提升了Nutch關(guān)于不同應(yīng)用的擴大,在實際開發(fā)中只必須要對特定的接口進行簡單的實現(xiàn),便能夠生成具有特定功能的搜索引擎,滿足了各種特色的搜索服務(wù)。
2.靈活性。插件擁有著強大的資源庫,這些插件都在Nutch的plugins中,開發(fā)者在使用Nutch框架定制符合自己必須求的插件,,比如:開發(fā)者可以選擇不同的實現(xiàn)算法,尋找滿足自己必須要的最優(yōu)解,也可以增加對不同格式文檔的分析解壓。
3.可維護性。每個開發(fā)者只必須要關(guān)注自己必須要關(guān)注的問題,如內(nèi)核的開發(fā)者為引擎內(nèi)核擴大時,只必須添加一個描述它的接口;plugin的開發(fā)者只必須關(guān)注這個plugin所要實現(xiàn)的功能,不必須要完全了解整個系統(tǒng)工作的工作流程。僅僅必須要知道plugin和plug之間交換的數(shù)據(jù)類型。這使得內(nèi)核更加簡單,也更容易維護。
插件機制在Nutch中的實現(xiàn),是由Nutch框架提供的擴大點,為其增加一系列的擴大項,從而實現(xiàn)復(fù)雜的業(yè)務(wù)功能。
Nutch的爬蟲屬于一般的爬蟲,這樣的爬蟲在工作的時候,首先要選好一定的URL集合作為一個起始隊列。爬蟲通過爬取、解析等過程,獲取到網(wǎng)頁上新的URL,并且把這些URL添加到隊列之中,當(dāng)?shù)谝惠喿ト⊥瓿芍?,就會持續(xù)以這些獲取到的新的URL為起始地址,持續(xù)向深層次抓取,如此循環(huán)抓取,直到滿足抓取停止的條件或者隊列為空,爬蟲才會停止工作。一般的爬蟲一般會包括待爬行隊列模塊,獲取網(wǎng)頁模塊,頁面解析模塊等。
與一般爬蟲相比,主題爬蟲一般會增加一個主題相關(guān)度推斷的模塊,也是主題爬蟲的核心模塊。該模塊負責(zé)爬蟲在抓取到網(wǎng)頁之后,對網(wǎng)頁的內(nèi)容進行一次主題推斷,如果推斷結(jié)果為與主題相關(guān)或者相近,則該頁面可以保留;假設(shè)推斷結(jié)果為該頁面與主題無直接關(guān)系,則可以認為這個頁面關(guān)于抓取后的操作意義不大,可以直接舍棄。由此可以推斷出,抓取頁面質(zhì)量的優(yōu)劣直接有主題爬蟲制定的好壞決定,而主題爬蟲好壞又直接受到主題相關(guān)度推斷模塊影響。
目前,主要的主題爬蟲爬行策略有兩種:一是廣度優(yōu)先搜索策略,二是最正確優(yōu)先搜索策略。二者各有優(yōu)點和缺點,很多時候都是結(jié)合著使用的。
廣度優(yōu)先搜索策略是一種圖形搜索算法,在互聯(lián)網(wǎng)上,網(wǎng)頁與網(wǎng)頁之間相聯(lián)系是靠URL,假設(shè)通過頁面A上的某一URL可以跳轉(zhuǎn)到頁面B,則可以認為頁面A為上層,頁面B為下
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長春材料員考試試題及答案
- 單病種培訓(xùn)試題及答案
- 稽查專員面試題及答案
- 形象廣告試題及答案
- 船舶消防試題及答案
- 山東高校面試題及答案
- 雷山往年面試題及答案
- 2025年大氣科學(xué)專業(yè)畢業(yè)設(shè)計開題報告
- 2025年四類先生面試題及答案
- 2025年我爸爸試題及答案
- 2025年專業(yè)技術(shù)人員繼續(xù)教育公需科目培訓(xùn)考試試題及答案
- 2025年食品安全管理員考試題庫(附答案)
- GB 5768.9-2025道路交通標(biāo)志和標(biāo)線第9部分:交通事故管理區(qū)
- 創(chuàng)傷中心建設(shè)與管理指導(dǎo)原則
- 2025年信訪專業(yè)考試題目及答案
- LNG項目可行性研究報告范文
- 國資委崗位管理辦法
- 2025士官考試題庫及答案
- 流感的預(yù)防及護理
- 2025年環(huán)保氣象安全技能考試-固體廢物監(jiān)測工歷年參考題庫含答案解析(5套共100道單選合輯)
- 蒙牛世界杯年度主題營銷推廣方案
評論
0/150
提交評論