什么是網絡爬蟲?有什么用?怎么爬?終于有人講明白了_第1頁
什么是網絡爬蟲?有什么用?怎么爬?終于有人講明白了_第2頁
什么是網絡爬蟲?有什么用?怎么爬?終于有人講明白了_第3頁
什么是網絡爬蟲?有什么用?怎么爬?終于有人講明白了_第4頁
什么是網絡爬蟲?有什么用?怎么爬?終于有人講明白了_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

什么是網絡爬?有什么用?怎么爬?終于有講明白了01什是網絡爬蟲隨著大數據時代的來臨,網絡爬蟲在互聯網中的地位將越來越重要。互聯網中的數據是海量的如何自動高效地獲取互聯網中我們感興趣的信息并為我們所用是一個重要的問題,而爬蟲技術就是為了決這些問題而生的。我們感興趣的信息分為不同的類型:如果只是做搜索引擎,那么感興趣的信息就是互聯網中盡能多的高質量網頁;如果要獲取某一垂直領域的數據或者有明確的檢索需求,那么感興趣的信息就是根我們的檢索和需求所定位的這些信息,此時,需要過濾掉一些無用信息。前者我們稱為通用網絡爬蟲,者我們稱為聚焦網絡爬蟲。初網絡爬蟲網絡爬蟲又稱網絡蜘蛛、網絡螞蟻、網絡機器人等,可以自動化瀏覽網絡中的信息,當然瀏覽息的時候需要按照我們制定的規則進行,這些規則我們稱之為網絡爬蟲算法。使用ython可很方便地編寫出爬蟲程序,進行互聯網信息的自動化檢索。搜索引擎離不開爬蟲,比如百度搜索引擎的爬蟲叫作百度蜘蛛)百度蜘蛛每天會在海的互聯網信息中進行爬取,爬取優質信息并收錄,當用戶在百度搜索引擎上檢索對應關鍵詞時,百將對關鍵詞進行分析處理,從收錄的網頁中找出相關網頁,按照一定的排名規則進行排序并將結果展現用戶。在這個過程中,百度蜘蛛起到了至關重要的作用。那么,如何覆蓋互聯網中更多的優質網頁?如何篩選這些重復的頁面?這些都是由百度蜘蛛爬蟲的算法決定的。采用不同的算法,爬蟲的運行效率不同,爬取結果也會有所差異。所以,我們在研究爬蟲的時候,不僅要了解爬蟲如何實現,還需要知道一些常見爬蟲的算法,果有必要,我們還需要自己去制定相應的算法,在此,我們僅需要對爬蟲的概念有一個基本的了解。除了百度搜索引擎離不開爬蟲以外,其他搜索引擎也離不開爬蟲,它們也擁有自己的爬蟲。比360的爬蟲叫,搜狗的爬蟲叫,必的爬蟲叫Bingbot。如果想自己實現一款小型的搜索引擎,我們也可以編寫出自己的爬蟲去實現,當然,雖然可能性能或者算法上比不上主流的搜索引擎,但是個性化的程度會非常高,并且也有利于我們更深層次地理搜索引擎內部的工作原理。大數據時代也離不開爬蟲,比如在進行大數據分析或數據挖掘時,我們可以去一些比較大型的方站點下載數據源。但這些數據源比較有限,那么如何才能獲取更多更高質量的數據源呢?此時,我們以編寫自己的爬蟲程序,從互聯網中進行數據信息的獲取。所以在未來,爬蟲的地位會越來越重要。為么要學網絡蟲我們初步認識了網絡爬蟲,但是為什么要學習網絡爬蟲呢?要知道,只有清晰地知道我們的學目的,才能夠更好地學習這一項知識,我們將會為大家分析一下學習網絡爬蟲的原因。當然,不同的人學習爬蟲,可能目的有所不同,在此,我們總結了種見的學習爬蟲的原因。1學爬蟲可以私人制一個搜索引擎且可以對搜索引擎的數據采集工作原理進更深層次地理解。有的朋友希望能夠深層次地了解搜索引擎的爬蟲工作原理,或者希望自己能夠開發出一款私人索引擎,那么此時,學習爬蟲是非常有必要的。簡單來說,我們學會了爬蟲編寫之后,就可以利用爬蟲自動地采集互聯網中的信息,采集回來進行相應的存儲或處理,在需要檢索某些信息的時候,只需在采集回來的信息中進行檢索,即實現了私的搜索引擎。當然,信息怎么爬取、怎么存儲、怎么進行分詞、怎么進行相關性計算等,都是需要我們進行計的,爬蟲技術主要解決信息爬取的問題。2)大數據時代,要進數據分析,首先要有數據源,而學習爬蟲,可以讓我們獲取更的數據源,并且這些數據源可以按我們的目的進行采集,去掉很多無關數據。在進行大數據分析或者進行數據挖掘的時候,數據源可以從某些提供數據統計的網站獲得,也以從某些文獻或內部資料中獲得,但是這些獲得數據的方式,有時很難滿足我們對數據的需求,而手動互聯網中去尋找這些數據,則耗費的精力過大。此時就可以利用爬蟲技術,自動地從互聯網中獲取我們感興趣的數據內容,并將這些數據內容取回來,作為我們的數據源,從而進行更深層次的數據分析,并獲得更多有價值的信息。3)對于很多從者說,學習爬蟲,可以更深層次地理解搜索引擎爬蟲的工作原理,而可以更好地進行搜索引擎優化。既然是搜索引擎優化,那么就必須要對搜索引擎的工作原理非常清楚,同時也需要掌握搜索引爬蟲的工作原理,這樣在進行搜索引擎優化時,才能知己知彼,百戰不殆。4)從就業的角度來說,爬蟲工程師目前來說屬于緊缺人才,并且薪資待遇普遍較高,所以,深層次掌握這門技術,對于就業來說,是非常有利的。有些朋友學習爬蟲可能為了就業或者跳槽。從這個角度來說,爬蟲工程師方向是不錯的選擇之,因為目前爬蟲工程師的需求越來越大,而能夠勝任這方面崗位的人員較少,所以屬于一個比較緊缺的業方向,并且隨著大數據時代的來臨,爬蟲技術的應用將越來越廣泛,在未來會擁有很好的發展空間。除了以上為大家總結的種常見的學習爬蟲的原因外,可能你還有一些其他學習爬蟲的原因,總之,不管是什么原因,理清自己學習的目的,就可以更好地去研究一門知識技術,并堅持下來。網爬蟲的組成接下來,我們將介紹網絡爬蟲的組成。網絡爬蟲由控制節點、爬蟲節點、資源庫構成。圖1-1所示是網絡爬蟲的控制節點和爬蟲節點的結構關系。▲圖1-1網爬蟲的控制節點和爬蟲節的結構關系可以看到,網絡爬蟲中可以有多個控制節點,每個控制節點下可以有多個爬蟲節點,控制節點間可以互相通信,同時,控制節點和其下的各爬蟲節點之間也可以進行互相通信,屬于同一個控制節點的各爬蟲節點間,亦可以互相通信。控制節點,也叫作爬蟲的中央控制器,主要負責根據RL地址分配線程,并調用爬蟲節點進行具體的爬行。爬蟲節點會按照相關的算法,對網頁進行具體的爬行,主要包括下載網頁以及對網頁的文本進處理,爬行后,會將對應的爬行結果存儲到對應的資源庫中。網爬蟲的類型現在我們已經基本了解了網絡爬蟲的組成,那么網絡爬蟲具體有哪些類型呢?網絡爬蟲按照實現的技術和結構可以分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深網絡爬蟲等類型。在實際的網絡爬蟲中,通常是這幾類爬蟲的組合體。4.1通用網絡爬蟲首先我們為大家介紹通用網絡爬蟲GeneralPurposeWeb。通用網絡爬蟲又叫作全網爬蟲,顧名思義,通用網絡爬蟲爬取的目標資源在全互聯網中。通用網絡爬蟲所爬取的目標數據是巨大的,并且爬行的范圍也是非常大的,正是由于其爬取的據是海量數據,故而對于這類爬蟲來說,其爬取的性能要求是非常高的。這種網絡爬蟲主要應用于大型索引擎中,有非常高的應用價值。通用網絡爬蟲主要由初始集合、URL隊、頁面爬行模塊頁面分析模塊、頁面數據庫、鏈接過濾模塊等構成。通用網絡爬蟲在爬行的時候會采取一定的爬行策略,主要有深度優先爬行策略和廣優先爬行策略。4.2聚焦網絡爬蟲聚焦網絡爬蟲Focused)也叫主題網絡爬蟲,顧名思義,聚焦網絡爬蟲是按照預先定義好的主有選擇地進行網頁爬取的一種爬蟲,聚焦網絡爬蟲不像通用網絡爬蟲一樣將目標資源定位在全互網中,而是將爬取的目標網頁定位在與主題相關的頁面中,此時,可以大大節省爬蟲爬取時所需的帶寬源和服務器資源。聚焦網絡爬蟲主要應用在對特定信息的爬取中,主要為某一類特定的人群提供服務。聚焦網絡爬蟲主要由初始集合、URL隊、頁面爬行模塊頁面分析模塊、頁面數據庫、鏈接過濾模塊、內容評價模塊、鏈接評價模塊等構成。內容評價模塊可以評價內容的重要性,同理,鏈接價模塊也可以評價出鏈接的重要性,然后根據鏈接和內容的重要性,可以確定哪些頁面優先訪問。聚焦網絡爬蟲的爬行策略主要有種,即基于內容評價的爬行策略、基于鏈接評價的爬行策略、基于增強學習的爬行策略和基于語境圖的爬行策略。關于聚焦網絡爬蟲具體的爬行策略,我們將在下文進行詳細分析。4.3增量式網絡爬蟲增量式網絡爬蟲IncrementalWeb),所謂增量式,對應著增量式更新。增量式更新指的是在更新的時候只更新改變的地方,而未改變的地方則不更新,所以增量式網爬蟲,在爬取網頁的時候,只爬取內容發生變化的網頁或者新產生的網頁,對于未發生內容變化的網頁則不會爬取。增量式網絡爬蟲在一定程度上能夠保證所爬取的頁面,盡可能是新頁面。4.4深層網絡爬蟲深層網絡爬蟲(DeepWeb),可以爬取互聯中的深層頁面,在此我們首先需要了解深層頁面的概念。在互聯網中,網頁按存在方式分類,可以分為表層頁面和深層頁面。所謂的表層頁面,指的是需要提交表單,使用靜態的鏈接就能夠到達的靜態頁面;而深層頁面則隱藏在表單后面,不能通過靜態接直接獲取,是需要提交一定的關鍵詞之后才能夠獲取得到的頁面。在互聯網中,深層頁面的數量往往比表層頁面的數量要多很多,故而,我們需要想辦法爬取深頁面。爬取深層頁面,需要想辦法自動填寫好對應表單,所以,深層網絡爬蟲最重要的部分即為表單寫部分。深層網絡爬蟲主要由URL列表LVS列(指是標簽數集合即填充表單的數據源爬行控制器、解析器、控器、表單分析器、表單處理器、響應分析器等部分構成。深層網絡爬蟲表單的填寫有兩種類型:第一種是基于領域知識的表單填寫,簡單來說就是建立一個填寫表單的關鍵詞庫,在需要填寫時候,根據語義分析選擇對應的關鍵詞進行填寫;第二種是基于網頁結構分析的表單填寫,簡單來說,這種填寫方式一般是領域知識有限的情況使用,這種方式會根據網頁結構進行分析,并自動地進行表單填寫。以上,為大家介紹了網絡爬蟲中常見的幾種類型,希望讀者能夠對網絡爬蟲的分類有一個基本了解。爬擴展——聚焦爬蟲由于聚焦爬蟲可以按對應的主題有目的地進行爬取,并且可以節省大量的服務器資源和帶寬資,具有很強的實用性,所以在此,我們將對聚焦爬蟲進行詳細講解。所為聚焦爬蟲運行的流程,熟悉該流程后,我們可以更清晰地知道聚焦爬蟲的工作原理和過程。▲圖1-2聚爬蟲運行的流程首先,聚焦爬蟲擁有一個控制中心,該控制中心負責對整個爬蟲系統進行管理和監控,主要包控制用戶交互、初始化爬行器、確定主題、協調各模塊之間的工作、控制爬行過程等方面。然后,將初始的URL集傳遞給URL列,頁面爬行模塊會從URL列中讀取第一批URL列表,然后根據這些URL地從互聯網中進行相應的頁面爬取。爬取后,將爬取到的內容傳到頁面數據庫中存儲,同時,在爬行過程中,會爬取到一些新,此時,需要根據我們所定的主題使用鏈接過濾模塊過濾掉無關鏈接,再將剩下來的鏈接根據主題使用鏈接評價模塊或內容評價模塊進行優先級的排序。完成后,將新的URL地傳遞到URL隊中,供頁面爬行模塊使用。另一方面,將頁面爬取并存放到頁面數據庫后,需要根據主題使用頁面分析模塊對爬取到的頁進行頁面分析處理,并根據處理結果建立索引數據庫,用戶檢索對應信息時,可以從索引數據庫中進行應的檢索,并得到對應的結果。這就是聚焦爬蟲的主要工作流程,了解聚焦爬蟲的主要工作流程有助于我們編寫聚焦爬蟲,使寫的思路更加清晰。02網絡爬蟲技能總覽在上文中,我們已經初步認識了網絡爬蟲,那么網絡爬蟲具體能做些什么呢?用網絡爬蟲又能哪些有趣的事呢?在本章中我們將為大家具體講解。網爬蟲技能總圖如圖2-1所,我們總結了網絡爬蟲的用功能。▲圖2-1網爬蟲技能示意圖在圖2-1中以看到網爬蟲可以代手工做很多事情如可以用于做搜索引擎也可以爬取網站上的圖片,比如有些朋友將某些網站上的圖片全部爬取下來,集中進行瀏覽,同時,網絡爬蟲也以用于金融投資領域,比如可以自動爬取一些金融信息,并進行投資分析等。有時,我們比較喜歡的新聞網站可能有幾個,每次都要分別打開這些新聞網站進行瀏覽,比較煩。此時可以利用網絡爬蟲,將這多個新聞網站中的新聞信息爬取下來,集中進行閱讀。有時,我們在瀏覽網頁上的信息的時候,會發現有很多廣告。此時同樣可以利用爬蟲將對應網上的信息爬取過來,這樣就可以自動的過濾掉這些廣告,方便對信息的閱讀與使用。有時,我們需要進行營銷,那么如何找到目標客戶以及目標客戶的聯系方式是一個關鍵問題。們可以手動地在互聯網中尋找,但是這樣的效率會很低。此時,我們利用爬蟲,可以設置對應的規則,動地從互聯網中采集目標用戶的聯系方式等數據,供我們進行營銷使用。有時,我們想對某個網站的用戶信息進行分析,比如分析該網站的用戶活躍度、發言數、熱門章等信息,如果我們不是網站管理員,手工統計將是一個非常龐大的工程。此時,可以利用爬蟲輕松將這數據采集到,以便進行進一步分析,而這一切爬取的操作,都是自動進行的,我們只需要編寫好對應的蟲,并設計好對應的規則即可。除此之外,爬蟲還可以實現很多強大的功能。總之,爬蟲的出現,可以在一定程度上代替手工問網頁,從而,原先我們需要人工去訪問互聯網信息的操作,現在都可以用爬蟲自動化實現,這樣可以高效率地利用好互聯網中的有效信息。搜引擎核心爬蟲與搜索引擎的關系是密不可分的,既然提到了網絡爬蟲,就免不了提到搜索引擎,在此,們將對搜索引擎的核心技術進行一個簡單的講解。圖2-2所示為搜索引擎的核心工作流程先搜引擎會利用蟲模塊去爬取互聯網中的網頁然后將爬取到的網頁存儲在原始數據庫中。爬蟲模塊主要包括控制器和爬行器,控制器主要進行爬行的制,爬行器則負責具體的爬行任務。然后,會對原始數據庫中的數據進行索引,并存儲到索引數據庫中。當用戶檢索信息的時候,會通過用戶交互接口輸入對應的信息,用戶交互接口相當于搜索引擎輸入框,輸入完成之后,由檢索器進行分詞等操作,檢索器會從索引數據庫中獲取數據進行相應的檢索理。用戶輸入對應信息的同時,會將用戶的行為存儲到用戶日志數據庫中,比如用戶的IP地址、用戶所輸入的關鍵詞等等。隨后,用戶日志數據庫中的數據會交由日志分析器進行處理。日志分析器會根據量的用戶數據去調整原始數據庫和索引數據庫,改變排名結果或進行其他操作。▲圖2-2搜引擎的核心工作流程以上就是搜索引擎核心工作流程的簡要概述,可能大家對索引和檢索的概念還不太能區分,在我為大家詳細講一下。簡單來說,檢索是一種行為,而索引是一種屬性。比如一家超市,里面有大量的商品,為了能快速地找到這些商品,我們會將這些商品進行分組,比如有日常用品類商品、飲料類商品、服裝類商品組別,此時,這些商品的組名我們稱之為索引,索引由索引器控制。如果,有一個用戶想要找到某一個商品,那么需要在超市的大量商品中尋找,這個過程,我們之為檢索。如果有一個好的索引,則可以提高檢索的效率;若沒有索引,則檢索的效率會很低。比如,一個超市里面的商品如果沒有進行分類,那么用戶要在海量的商品中尋找某一種商品,會比較費力。用爬蟲的那些兒用戶爬蟲是網絡爬蟲中的一種類型。所謂用戶爬蟲,指的是專門用來爬取互聯網中用戶數據的種爬蟲。由于互聯網中的用戶數據信息,相對來說是比較敏感的數據信息,所以,用戶爬蟲的利用價值相對較高。利用用戶爬蟲可以做大量的事情,接下來我們一起來看一下利用用戶爬蟲所做的一些有趣的事吧。2015年有知乎網友對知乎的用戶據進行了爬取,然后進行對應的數據分析,便得到了知乎上大量的潛在數據,比如:知乎上注冊用戶的男女比例:男生占例多于。知乎上注冊用戶的地區:北京的人口占據比重最大,多于30%。知乎上注冊用戶從事的行業:從事互聯網行業的用戶占據比重最大,同樣多于30%。除此之外,只要我們細心發掘,還可以挖掘出更多的潛在數據,而要分析這些數據,則必須要取到這些用戶數據,此時,我們可以使用網絡爬蟲技術輕松爬取到這些有用的用戶信息。同樣,在2015年有網友爬取了3000萬QQ空間的用戶信息,并同樣從中獲得了大量潛在數據,比如:QQ空用戶發說說的時間規律:晚上22點左右,平均發說說的數量是一天最多的時候。QQ空用戶的出生月份分布1月和10月出生的用戶較多。QQ空用戶的年齡階段分布:出生于1990年1995年的用戶相對來說較多。QQ空用戶的性別分布:男生占比多于,女生占比多于30%,未填性別的占左。除了以上兩個例子之外,用戶爬蟲還可以做很多事情,比如爬取淘寶的用戶信息,可以分析淘用戶喜歡什么商品,從而更有利于我們對商品的定位等。由此可見,利用用戶爬蟲可以獲得很多有趣的潛在信息,那么這些爬蟲難嗎?其實不難,相信也能寫出這樣的爬蟲。03小網絡爬蟲也叫作網絡蜘蛛、網絡螞蟻、網絡機器人等,可以自

溫馨提示

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

評論

0/150

提交評論