簡單來講,爬蟲就是一個探測機器,它的基本操作就是模擬人的行為去各個網站溜達,點點按鈕,查查數據,或者把看到的信息背回來。就像一隻蟲子在一幢樓里不知疲倦地爬來爬去。
你可以簡單地想像:每個爬蟲都是你的「分身」。就像孫悟空拔了一撮汗毛,吹出一堆猴子一樣。
你每天使用的網路,其實就是利用了這種爬蟲技術:每天放出無數爬蟲到各個網站,把他們的信息抓回來,然後化好淡妝排著小隊等你來檢索。
搶票軟體,就相當於撒出去無數個分身,每一個分身都幫助你不斷刷新 12306 網站的火車余票。一旦發現有票,就馬上拍下來,然後對你喊:土豪快來付款。
那麼,像這樣的爬蟲技術一旦被用來作惡有多可怕呢?
正好在上周末,一位黑客盆友御風神秘兮兮地給我發來一份《中國爬蟲圖鑒》,這哥們在騰訊雲鼎實驗室主要負責加班,順便和同事們開發了很多黑科技。比如他們搞了一個威脅情報系統,號稱能探測到全世界的「爬蟲」都在做什麼。
我吹著口哨打開《圖鑒》,但一分鍾以後,我整個人都不好了。
我看到了另一個「平行世界」:
就在我們身邊的網路上,已經密密麻麻爬滿了各種網路爬蟲,它們善惡不同,各懷心思。而越是每個人切身利益所在的地方,就越是爬滿了爬蟲。
看到最後,我發現這哪裡是《中國爬蟲圖鑒》,這分明是一份《中國焦慮圖鑒》。
這是爬蟲經常光顧的微博地址。
㈡ 網路爬蟲設計類圖論中的哪些經典演算法
根據PageRank的思想,編程在網路爬蟲中實現。它的核心思想是能夠發現權威超鏈接,通常的實現方法是將新分析出來的超鏈接與舊的超鏈接比對,使超鏈接的權重增加,從而抓取權重高的超鏈接。因為我們無法收錄所有的超鏈接只能撿重要的收錄。
㈢ 網路爬蟲採用的是哪種演算法策略
在爬蟲系統中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什麼樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,後抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:
1.深度優先遍歷策略
深度優先遍歷策略是指網路爬蟲會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之後再轉入下一個起始頁,繼續跟蹤鏈接。我們以下面的圖為例: 遍歷的路徑:A-F-G E-H-I B C D 2.寬度優先遍歷策略 寬度優先遍歷策略的基本思路是,將新下載網頁中發現的鏈接直接插入待抓取URL隊列的末尾。也就是指網路爬蟲會先抓取起始網頁中鏈接的所有網頁,然後再選擇其中的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。還是以上面的圖為例: 遍歷路徑:A-B-C-D-E-F G H I 3.反向鏈接數策略 反向鏈接數是指一個網頁被其他網頁鏈接指向的數量。反向鏈接數表示的是一個網頁的內容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統會使用這個指標來評價網頁的重要程度,從而決定不同網頁的抓取先後順序。 在真實的網路環境中,由於廣告鏈接、作弊鏈接的存在,反向鏈接數不能完全等他我那個也的重要程度。因此,搜索引擎往往考慮一些可靠的反向鏈接數。 4.Partial PageRank策略 Partial PageRank演算法借鑒了PageRank演算法的思想:對於已經下載的網頁,連同待抓取URL隊列中的URL,形成網頁集合,計算每個頁面的PageRank值,計算完之後,將待抓取URL隊列中的URL按照PageRank值的大小排列,並按照該順序抓取頁面。 如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面後,重新計算一次PageRank值。但是這種情況還會有一個問題:對於已經下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網頁所有入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。下面舉例說明: 5.OPIC策略策略 該演算法實際上也是對頁面進行一個重要性打分。在演算法開始前,給所有頁面一個相同的初始現金(cash)。當下載了某個頁面P之後,將P的現金分攤給所有從P中分析出的鏈接,並且將P的現金清空。對於待抓取URL隊列中的所有頁面按照現金數進行排序。 6.大站優先策略 對於待抓取URL隊列中的所有網頁,根據所屬的網站進行分類。對於待下載頁面數多的網站,優先下載。這個策略也因此叫做大站優先策略。
㈣ 網路爬蟲採用哪種演算法策略
基於網頁內容的分析演算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本為主,發展到後來動態頁面(或稱為Hidden Web)數據為主,後者的數據量約為直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數據、Web Service等各種網路資源形式也日益豐富。因此,基於網頁內容的分析演算法也從原來的較為單純的文本檢索方法,發展為涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法的綜合應用。本節根據網頁數據形式的不同,將基於網頁內容的分析演算法,歸納以下三類:第一種針對以文本和超鏈接為主的無結構或結構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具有較好的結構,顯示遵循一定模式或風格,且可以直接訪問。
基於文本的網頁分析演算法
1) 純文本分類與聚類演算法
很大程度上借用了文本檢索的技術。文本分析演算法可以快速有效的對網頁進行分類和聚類,但是由於忽略了網頁間和網頁內部的結構信息,很少單獨使用。
2) 超文本分類和聚類演算法
根據網頁鏈接網頁的相關類型對網頁進行分類,依靠相關聯的網頁推測該網頁的類型。
參見網路:http://ke..com/view/284853.htm?fromtitle=%E7%BD%91%E7%BB%9C%E8%9C%98%E8%9B%9B&fromid=371999&type=syn
㈤ 什麼是網路爬蟲以及怎麼做它
網路爬蟲:是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者蠕蟲。
做法:傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。
㈥ 爬蟲是什麼
網路爬蟲又稱網路蜘蛛、網路螞蟻、網路機器人等,可以自動化瀏覽網路中的信息,當然瀏覽信息的時候需要按照我們制定的規則進行,這些規則我們稱之為網路爬蟲演算法。使用Python可以很方便地編寫出爬蟲程序,進行互聯網信息的自動化檢索。
㈦ 什麼是網路爬蟲
什麼是網路爬蟲呢?網路爬蟲又叫網路蜘蛛(Web Spider),這是一個很形象的名字,把互聯網比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。嚴格上講網路爬蟲是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。
眾所周知,傳統意義上網路爬蟲是搜索引擎上游的一個重要功能模塊,是負責搜索引擎內容索引核心功能的第一關。
然而,隨著大數據時代的來臨,信息爆炸了,互聯網的數據呈現倍增的趨勢,如何高效地獲取互聯網中感興趣的內容並為所用是目前數據挖掘領域增值的一個重要方向。網路爬蟲正是出於這個目的,迎來了新一波的振興浪潮,成為近幾年迅速發展的熱門技術。
目前網路爬蟲大概分為四個發展階段:
第一個階段是早期爬蟲,那時互聯網基本都是完全開放的,人類流量是主流。
第二個階段是分布式爬蟲,互聯網數據量越來越大,爬蟲出現了調度問題。
第三階段是暗網爬蟲,這時的互聯網出現了新的業務,這些業務的數據之間的鏈接很少,例如淘寶的評價。
第四階段是智能爬蟲,主要是社交網路數據的抓取,解決賬號,網路封閉,反爬手段、封殺手法千差萬別等問題。
目前,網路爬蟲目前主要的應用領域如:搜索引擎,數據分析,信息聚合,金融投資分析等等。
巧婦難為無米之炊,在這些應用領域中,如果沒有網路爬蟲為他們抓取數據,再好的演算法和模型也得不到結果。而且沒有數據進行機器學習建模,也形成不了能解決實際問題的模型。因此在目前炙手可熱的人工智慧領域,網路爬蟲越來越起到數據生產者的關鍵作用,沒有網路爬蟲,數據挖掘、人工智慧就成了無源之水和無本之木。
具體而言,現在爬蟲的熱門應用領域的案例是比價網站的應用。目前各大電商平台為了吸引用戶,都開展各種優惠折扣活動。同樣的一個商品可能在不同網購平台上價格不一樣,這就催生了比價網站或App,例如返利網,折多多等。這些比價網站一個網路爬蟲來實時監控各大電商的價格浮動。就是採集商品的價格,型號,配置等,再做處理,分析,反饋。這樣可以在秒級的時間內獲得一件商品在某電商網站上是否有優惠的信息。
關於網路爬蟲的問題可以看下這個頁面的視頻教程,Python爬蟲+語音庫,看完後會對網路爬蟲有個清晰的了解。
㈧ 網路爬蟲的實現演算法
寬度遍歷。
要深入了解,可以學習獵兔網路爬蟲培訓課程。
㈨ 網路爬蟲是什麼
網路爬蟲也叫網路蜘蛛,即Web Spider,名字非常形象。
如果把互聯網比喻成一個蜘蛛網,那麼Web Spider就是在網上爬來爬去的蜘蛛。網路蜘蛛通過網頁的鏈接地址來尋找網頁,從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然後通過這些鏈接地址尋找下一個網頁,一直循環下去,直到把整個網站所有的網頁都抓取完為止。
如果把整個互聯網當成一個網站,那麼網路蜘蛛可以用這個原理把互聯網上所有的網頁都抓取下來。
㈩ 誰能仔細解釋一下網路爬蟲
1 爬蟲技術研究綜述
引言�
隨著網路的迅速發展,萬維網成為大量信息的載體,如何有效地提取並利用這些信息成為一個巨大的挑戰。搜索引擎(Search Engine),例如傳統的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:�
(1) 不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結果包含大量用戶不關心的網頁。�
(2) 通用搜索引擎的目標是盡可能大的網路覆蓋率,有限的搜索引擎伺服器資源與無限的網路數據資源之間的矛盾將進一步加深。�
(3) 萬維網數據形式的豐富和網路技術的不斷發展,圖片、資料庫、音頻/視頻多媒體等不同數據大量出現,通用搜索引擎往往對這些信息含量密集且具有一定結構的數據無能為力,不能很好地發現和獲取。�
(4) 通用搜索引擎大多提供基於關鍵字的檢索,難以支持根據語義信息提出的查詢。�
為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所需要的信息。與通用爬蟲(general�purpose web crawler)不同,聚焦爬蟲並不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢准備數據資源。�
1 聚焦爬蟲工作原理及關鍵技術概述�
網路爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件,如圖1(a)流程圖所示。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止,如圖1(b)所示。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。�
相對於通用網路爬蟲,聚焦爬蟲還需要解決三個主要問題:�
(1) 對抓取目標的描述或定義;�
(2) 對網頁或數據的分析與過濾;�
(3) 對URL的搜索策略。�
抓取目標的描述和定義是決定網頁分析演算法與URL搜索策略如何制訂的基礎。而網頁分析演算法和候選URL排序演算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行為的關鍵所在。這兩個部分的演算法又是緊密相關的。�
2 抓取目標描述�
現有聚焦爬蟲對抓取目標的描述可分為基於目標網頁特徵、基於目標數據模式和基於領域概念3種。�
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般為網站或網頁。根據種子樣本獲取方式可分為:�
(1) 預先給定的初始抓取種子樣本;�
(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;�
(3) 通過用戶行為確定的抓取目標樣例,分為:�
a) 用戶瀏覽過程中顯示標注的抓取樣本;�
b) 通過用戶日誌挖掘得到訪問模式及相關樣本。�
其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。�
現有的聚焦爬蟲對抓取目標的描述或定義可以分為基於目標網頁特徵,基於目標數據模式和基於領域概念三種。�
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般為網站或網頁。具體的方法根據種子樣本的獲取方式可以分為:(1)預先給定的初始抓取種子樣本;(2)預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;(3)通過用戶行為確定的抓取目標樣例。其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。�
作者: 齊保元 2006-1-10 10:11 回復此發言
--------------------------------------------------------------------------------
2 爬蟲技術研究綜述
基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據一般要符合一定的模式,或者可以轉化或映射為目標數據模式。�
另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要程度。�
3 網頁搜索策略�
網頁的抓取策略可以分為深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入(trapped)問題,目前常見的是廣度優先和最佳優先方法。�
3.1 廣度優先搜索策略�
廣度優先搜索策略是指在抓取過程中,在完成當前層次的搜索後,才進行下一層次的搜索。該演算法的設計和實現相對簡單。在目前為覆蓋盡可能多的網頁,一般使用廣度優先搜索方法。也有很多研究將廣度優先搜索策略應用於聚焦爬蟲中。其基本思想是認為與初始URL在一定鏈接距離內的網頁具有主題相關性的概率很大。另外一種方法是將廣度優先搜索與網頁過濾技術結合使用,先用廣度優先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺點在於,隨著抓取網頁的增多,大量的無關網頁將被下載並過濾,演算法的效率將變低。�
3.2 最佳優先搜索策略�
最佳優先搜索策略按照一定的網頁分析演算法,預測候選URL與目標網頁的相似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取。它只訪問經過網頁分析演算法預測為「有用」的網頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優先策略是一種局部最優搜索演算法。因此需要將最佳優先結合具體的應用進行改進,以跳出局部最優點。將在第4節中結合網頁分析演算法作具體的討論。研究表明,這樣的閉環調整可以將無關網頁數量降低30%~90%。�
4 網頁分析演算法�
網頁分析演算法可以歸納為基於網路拓撲、基於網頁內容和基於用戶訪問行為三種類型。�
4.1 基於網路拓撲的分析演算法�
基於網頁之間的鏈接,通過已知的網頁或數據,來對與其有直接或間接鏈接關系的對象(可以是網頁或網站等)作出評價的演算法。又分為網頁粒度、網站粒度和網頁塊粒度這三種。�
4.1.1 網頁(Webpage)粒度的分析演算法�
PageRank和HITS演算法是最常見的鏈接分析演算法,兩者都是通過對網頁間鏈接度的遞歸和規范化計算,得到每個網頁的重要度評價。PageRank演算法雖然考慮了用戶訪問行為的隨機性和Sink網頁的存在,但忽略了絕大多數用戶訪問時帶有目的性,即網頁和鏈接與查詢主題的相關性。針對這個問題,HITS演算法提出了兩個關鍵的概念:權威型網頁(authority)和中心型網頁(hub)。�
基於鏈接的抓取的問題是相關頁面主題團之間的隧道現象,即很多在抓取路徑上偏離主題的網頁也指向目標網頁,局部評價策略中斷了在當前路徑上的抓取行為。文獻[21]提出了一種基於反向鏈接(BackLink)的分層式上下文模型(Context Model),用於描述指向目標網頁一定物理跳數半徑內的網頁拓撲圖的中心Layer0為目標網頁,將網頁依據指向目標網頁的物理跳數進行層次劃分,從外層網頁指向內層網頁的鏈接稱為反向鏈接。�
4.1.2 網站粒度的分析演算法�
網站粒度的資源發現和管理策略也比網頁粒度的更簡單有效。網站粒度的爬蟲抓取的關鍵之處在於站點的劃分和站點等級(SiteRank)的計算。SiteRank的計算方法與PageRank類似,但是需要對網站之間的鏈接作一定程度抽象,並在一定的模型下計算鏈接的權重。�
網站劃分情況分為按域名劃分和按IP地址劃分兩種。文獻[18]討論了在分布式情況下,通過對同一個域名下不同主機、伺服器的IP地址進行站點劃分,構造站點圖,利用類似PageRank的方法評價SiteRank。同時,根據不同文件在各個站點上的分布情況,構造文檔圖,結合SiteRank分布式計算得到DocRank。文獻[18]證明,利用分布式的SiteRank計算,不僅大大降低了單機站點的演算法代價,而且克服了單獨站點對整個網路覆蓋率有限的缺點。附帶的一個優點是,常見PageRank 造假難以對SiteRank進行欺騙。�
4.1.3 網頁塊粒度的分析演算法�
在一個頁面中,往往含有多個指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關網頁的,或根據網頁的鏈接錨文本表明其具有較高重要性。但是,在PageRank和HITS演算法中,沒有對這些鏈接作區分,因此常常給網頁分析帶來廣告等雜訊鏈接的干擾。在網頁塊級別(Block�level)進行鏈接分析的演算法的基本思想是通過VIPS網頁分割演算法將網頁分為不同的網頁塊(page block),然後對這些網頁塊建立page�to�block和block�to�page的鏈接矩陣,�分別記為Z和X。於是,在page�to�page圖上的網頁塊級別的PageRank為�W�p=X×Z;�在block�to�block圖上的BlockRank為�W�b=Z×X。�已經有人實現了塊級別的PageRank和HITS演算法,並通過實驗證明,效率和准確率都比傳統的對應演算法要好。�
4.2 基於網頁內容的網頁分析演算法�
基於網頁內容的分析演算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本為主,發展到後來動態頁面(或稱為Hidden Web)數據為主,後者的數據量約為直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數據、Web Service等各種網路資源形式也日益豐富。因此,基於網頁內容的分析演算法也從原來的較為單純的文本檢索方法,發展為涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法的綜合應用。本節根據網頁數據形式的不同,將基於網頁內容的分析演算法,歸納以下三類:第一種針對以文本和超鏈接為主的無結構或結構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具有較好的結構,顯示遵循一定模式或風格,且可以直接訪問。�
4.2.1 基於文本的網頁分析演算法�
1) 純文本分類與聚類演算法 �
很大程度上借用了文本檢索的技術。文本分析演算法可以快速有效的對網頁進行分類和聚類,但是由於忽略了網頁間和網頁內部的結構信息,很少單獨使用。�
2) 超文本分類和聚類演算法�
網頁文本還具有大量的