自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

沒有爬蟲,就沒有今天的搜索引擎

開發(fā) 前端 新聞
在如今信息化、數(shù)字化的時代,人們已經離不開網絡搜索了,但細想一下,你在搜索過程中能夠真正獲得相關信息,是因為有人在幫你把與之相關的內容篩選和呈遞到你面前了。

 在如今信息化、數(shù)字化的時代,人們已經離不開網絡搜索了,但細想一下,你在搜索過程中能夠真正獲得相關信息,是因為有人在幫你把與之相關的內容篩選和呈遞到你面前了。

[[277948]]

就像在飯店里,你點了土豆并且能吃到,是因為有人幫你在土豆、蘿卜、西紅柿等中找到土豆,也有人把土豆拿到你桌上。在網絡上,這兩個動作都是由一位叫做爬蟲的同學幫你實現(xiàn)的。

也就是說,沒有爬蟲,就沒有今天的檢索,你就不能精確地查找信息、有效地獲取數(shù)據。今天DataHunter數(shù)獵哥就來說說爬蟲在數(shù)據分析領域的應用,以及它是如何幫助我們提升數(shù)據分析質量的。

一、數(shù)據化時代,爬蟲的本質是提升效率

網絡爬蟲也叫網絡機器人,可以代替人們自動化瀏覽網絡中的信息,進行數(shù)據的采集與整理。

它是一種程序,基本原理是向網站/網絡發(fā)起請求,獲取資源后分析并提取有用數(shù)據。從技術層面來說,就是通過程序模擬瀏覽器請求站點的行為,把站點返回的HTML代碼/JSON數(shù)據/二進制數(shù)據(圖片、視頻) 爬到本地,進而提取自己需要的數(shù)據,并存放起來使用。

 

沒有爬蟲,就沒有今天的搜索引擎

 

 

每一個程序都有自己的規(guī)則,網絡爬蟲也不例外。它穿梭于全球各個網站中間,會根據人們施加的規(guī)則去采集信息,我們稱這些規(guī)則為網絡爬蟲算法。規(guī)則是人定的,是人根據自己的目的與需求設計的,因此,根據使用者的目的,爬蟲可以有不同的功能。但所有爬蟲的本質,都是方便人們在海量的互聯(lián)網信息中找到并下載到自己要的那一類,提升信息獲取效率。

二、爬蟲的應用:搜索與幫助企業(yè)強化業(yè)務

1.搜索引擎:爬站點,為網絡用戶提供便利

在網絡發(fā)展伊始,全球范圍內能提供信息的網站數(shù)量不多,用戶也不多。互聯(lián)網只是文件傳輸協(xié)議(FTP)站點的集合,用戶可以在這些站點中導航以找到特定的共享文件,而為了查找和組合互聯(lián)網上可用的分布式數(shù)據,人們創(chuàng)建了一個自動化程序,稱為網絡爬蟲/機器人,可以抓取網上的所有網頁,然后將所有頁面上的內容復制到數(shù)據庫中制作索引。這也是最早期的搜索引擎。

如今隨著互聯(lián)網的高速發(fā)展,我們能夠在任何一個搜索引擎中看到來自全球各個網站的信息。百度搜索引擎的爬蟲叫做百度蜘蛛(Baiduspider),360的爬蟲叫360Spider,搜狗的爬蟲叫Sogouspider,必應的爬蟲叫Bingbot。搜索引擎離不開爬蟲。

比如百度蜘蛛每天會在海量的互聯(lián)網信息中進行爬取,爬取優(yōu)質信息并收錄。當用戶在百度搜索引擎上檢索對應關鍵詞時,百度將對關鍵詞進行分析處理,從收錄的網頁中找出相關網頁,按照一定的排名規(guī)則進行排序并將結果展現(xiàn)給用戶,工作原理如圖所示?,F(xiàn)在,我們可以大膽地說,你每天都在免費享受爬蟲的福利。


2.企業(yè):監(jiān)控輿情,高效獲取有價值信息

我們說過,爬蟲的本質是提升效率,爬蟲的規(guī)則是人定的;那么企業(yè)就完全可以根據自己的業(yè)務需求去設計一個爬蟲,第一時間得到網絡上與其相關信息,并且進行清洗和整合。

大數(shù)據時代要進行數(shù)據分析,首先要有數(shù)據源,而網絡爬蟲可以讓我們獲取更多數(shù)據源的同時,按照我們的目的進行采集,從而去掉很多無關數(shù)據。

比如在進行大數(shù)據分析或數(shù)據挖掘時,數(shù)據源可以從某些提供數(shù)據統(tǒng)計的網站獲取,也可以從某些文獻或內部資料中獲得。但是這些獲得數(shù)據的方式,有時很難滿足我們對數(shù)據的需求。此時,就可以利用爬蟲技術,自動地從互聯(lián)網中獲取更多我們感興趣的的數(shù)據內容,從而進行更深層次的數(shù)據分析,并獲得更多有價值的信息。

除此以外,網絡爬蟲還可以應用于金融分析中對金融數(shù)據進行采集,用以進行投資分析;應用于輿情監(jiān)測與分析、目標客戶精準營銷等各個領域。

三、4種企業(yè)常用的網絡爬蟲

網絡爬蟲按照實現(xiàn)的技術和結構可以分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深層網絡爬蟲等類型。但實際的網絡爬蟲由于復雜的網絡環(huán)境,通常是這幾類爬蟲的組合體。

1.通用網絡爬蟲

通用網絡爬蟲又叫作全網爬蟲,顧名思義,爬取的目標資源在全互聯(lián)網中,所爬取的目標數(shù)據是巨大的,并且爬行的范圍也是非常大的。正是由于其爬取的數(shù)據是海量數(shù)據,所以對于這類爬蟲來說,其爬取的性能要求是非常高的。這種網絡爬蟲主要應用于大型搜索引擎中,有非常高的應用價值。

通用網絡爬蟲主要由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數(shù)據庫、鏈接過濾模塊等構成。通用網絡爬蟲在爬行的時候會采取一定的爬行策略,主要有深度優(yōu)先爬行策略和廣度優(yōu)先爬行策略,具體詳情在后文中會有介紹。

2.聚焦網絡爬蟲

聚焦網絡爬蟲也叫主題網絡爬蟲,是按照預先定義好的主題有選擇地進行網頁爬取的一種爬蟲。聚焦網絡爬蟲主要應用在對特定信息的爬取中,主要為某一類特定的人群提供服務。

聚焦網絡爬蟲同樣由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數(shù)據庫、鏈接過濾模塊、內容評價模塊、鏈接評價模塊等構成。其中的內容評價模塊和鏈接評價模塊可以根據鏈接和內容的重要性,確定哪些頁面優(yōu)先訪問。聚焦網絡爬蟲的爬行策略主要有4種,如圖所示:


聚焦網絡爬蟲由于可以按對應的主題有目的地進行爬取,所以在實際的運用過程中可以節(jié)省大量的服務器資源和寬帶資源,因而具有很強的實用性。這里我們以聚焦網絡爬蟲為例來了解爬蟲運行的工作原理和流程。

 

沒有爬蟲,就沒有今天的搜索引擎

 

如圖所示,聚焦網絡爬蟲擁有一個控制中心,該控制中心負責對整個爬蟲系統(tǒng)進行管理和監(jiān)控,主要包括控制用戶交互、初始化爬行器、確定主題、協(xié)調各模塊之間的工作、控制爬行過程等方面:

(1)控制中心將初始的URL集合傳遞給URL隊列,頁面爬行模塊會從URL隊列中讀取第一批URL列表;

(2)根據這些URL地址從互聯(lián)網中進行相應的頁面爬取;爬取后,將爬取到的內容傳到頁面數(shù)據庫中存儲;

(3)在爬行過程中,會爬取到一些新的URL,此時,需要根據所定的主題使用鏈接過濾模塊過濾掉無關鏈接,再將剩下來的URL鏈接根據主題使用鏈接評價模塊或內容評價模塊進行優(yōu)先級的排序。完成后,將新的URL地址傳遞到URL隊列中,供頁面爬行模塊使用;

(4)將頁面爬取并存放到頁面數(shù)據庫后,需要根據主題使用頁面分析模塊對爬取到的頁面進行頁面分析處理,并根據處理結果建立索引數(shù)據庫,用戶檢索對應信息時,可以從索引數(shù)據庫中進行相應的檢索,并得到對應的結果。

3.增量式網絡爬蟲

這里的“增量式”對應著增量式更新,增量式更新指的是在更新的時候只更新改變的地方,而未改變的地方則不更新。

增量式網絡爬蟲,在爬取網頁的時候,只爬取內容發(fā)生變化的網頁或者新產生的網頁,對于未發(fā)生內容變化的網頁,則不會爬取。增量式網絡爬蟲在一定程度上能夠保證所爬取的頁面,盡可能是新頁面。

4.深層網絡爬蟲

在互聯(lián)網中,網頁按存在方式分類可分為表層頁面和深層頁面。表層頁面指的是不需要提交表單,使用靜態(tài)的鏈接就能夠到達的靜態(tài)頁面;而深層頁面是需要提交一定的關鍵詞之后才能夠獲取得到的頁面。而在互聯(lián)網中,深層頁面的數(shù)量往往比表層頁面的數(shù)量要多很多。

深層網絡爬蟲可以爬取互聯(lián)網中的深層頁面,爬取深層頁面,需要想辦法自動填寫好對應表單。深層網絡爬蟲主要由URL列表、LVS列表(LVS指的是標簽/數(shù)值集合,即填充表單的數(shù)據源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應分析器等部分構成。

四、網絡爬蟲的爬取策略

在前面我們說過網絡爬蟲算法是根據人們施加的規(guī)則去采集信息,而由于網絡復雜的環(huán)境,所以相應的也有各種不同算法,也就是爬取策略。這里我們主要介紹下爬取的順序與頻率。

1.爬取順序

在網絡爬蟲爬取的過程中,在帶爬取的URL列表中可能有很多URL地址,那么爬蟲爬取這些URL地址就會有先后順序。

相對于通用網絡爬蟲,爬取的順序并不是那么重要。但聚焦網絡爬蟲,爬取的順序與服務器資源和寬帶資源有關,所以非常重要,一般由爬行策略決定。爬行策略主要有深度優(yōu)先爬行策略、廣度優(yōu)先爬行策略、大站優(yōu)先策略、反鏈策略、其他爬行策略等。

沒有爬蟲,就沒有今天的搜索引擎

如圖所示,假設有一個網站,ABCDEFG分別為站點下的網頁,如圖所示表示網頁的層次結構。假如此時網頁ABCDEFG都在爬行隊列中,那么按照不同的爬行策略,其爬取的順序是不同的。

深度優(yōu)先爬行策略:A→D→E→B→C→F→G

廣度優(yōu)先爬行策略:A→B→C→D→E→F→G

除了以上兩種爬行策略之外,還可以采用大站爬行策略??梢园磳W頁所屬的站點進行歸類,如果某個網站的網頁數(shù)量多,則將其稱為大站,按照這種策略,網頁數(shù)量越多的網站越大,然后,優(yōu)先爬取大站中的網頁URL地址。

另外還有反鏈策略,一個網頁的反向鏈接數(shù),指的是該網頁被其他網頁指向的次數(shù),這個次數(shù)在一定程度上代表著該網頁被其他網頁的推薦次數(shù)。所以,如果按反鏈策略去爬行的話,那么哪個網頁的反鏈數(shù)量越多,則哪個網頁將被優(yōu)先爬取。

但是在實際情況中,如果單純按反鏈策略去決定一個網頁的優(yōu)先程度的話,那么可能會出現(xiàn)大量的作弊情況。所以采用反向鏈接策略需要考慮可靠的反鏈數(shù)。除了以上這些爬行策略,在實際中還有很多其他的爬行策略,比如OPIC策略、Partial PageRank策略等。

2.爬取頻率

一個網站的網頁是經常更新的,作為爬蟲方,網站的更新頻率與爬蟲訪問網站的頻率越接近,則效果越好。當然,在爬蟲服務器資源有限的情況下,爬蟲也需要根據對應策略,讓不同的網頁具有不同的更新優(yōu)先級,優(yōu)先級高的網頁更新,將獲得較快的爬取響應。常見的網頁更新策略主要有如下3種:

沒有爬蟲,就沒有今天的搜索引擎

(1)用戶體驗策略:大部分用戶在使用搜索引擎查詢某個關鍵詞的時候,只會關注排名靠前的網頁,所以,在爬蟲服務器資源有限的情況下,爬蟲會優(yōu)先更新排名結果靠前的網頁。

(2)歷史數(shù)據策略:指的是可以依據某一個網頁的歷史更新數(shù)據,通過泊松過程進行建模等手段,預測該網頁下一次更新的時間,從而確定下一次對該網頁爬取的時間。

(3)聚類分析策略:網頁可能具有不同的內容,但是一般來說,具有類似屬性的網頁其更新頻率類似,所以可以對海量的網頁進行聚類分析,聚類完成后,可以依據同一個類型網頁平均更新值來設定爬取的頻率。

五、網絡爬蟲的實現(xiàn)技術

對于實現(xiàn)技術,本文不做展開,僅為有興趣的同學提供幾個常見的語言:Python、Java、PHP、Node.JS、C++、Go語言(此外,網絡爬蟲的開發(fā)語言還有很多)。

Python:爬蟲框架非常豐富,并且多線程的處理能力較強,并且簡單易學、代碼簡潔,優(yōu)點很多。

Java:適合開發(fā)大型爬蟲項目。

PHP:后端處理很強,代碼很簡潔,模塊也較豐富,但是并發(fā)能力相對來說較弱。

Node.JS:支持高并發(fā)與多線程處理。

C++:運行速度快,適合開發(fā)大型爬蟲項目,成本較高。

Go語言:同樣高并發(fā)能力非常強。

六、小結

說到爬蟲,很多人都認為它是網絡世界中一個不可而為之的灰色地帶。恭喜你,讀完這篇文章,你對此的認知就超過了好多人。

因為爬蟲分為善意爬蟲和惡意爬蟲,例如,搜索引擎的爬蟲。善意爬蟲嚴格遵守Robots協(xié)議規(guī)范爬取網頁數(shù)據(如URL),它的存在能夠增加網站的曝光度,給網站帶來流量;

而惡意爬蟲,它無視Robots協(xié)議,對網站中某些深層次的、不愿意公開的數(shù)據肆意爬取,其中不乏個人隱私或者商業(yè)秘密等重要信息。并且惡意爬蟲的使用方希望從網站多次、大量的獲取信息,所以其通常會向目標網站投放大量的爬蟲。如果大量的爬蟲在同一時間對網站進行訪問,很容易導致網站服務器過載或崩潰,造成網站經營者的損失。

據統(tǒng)計,我國2017年互聯(lián)網流量有42.2%是由網絡機器人創(chuàng)造的,其中惡意機器(主要為惡意爬蟲)流量占到了21.80%。我們應該依法合理地使用網絡爬蟲,這樣才能運用技術為企業(yè)帶來長久發(fā)展,用科學為社會創(chuàng)造更高價值。

責任編輯:華軒 來源: 今日頭條
相關推薦

2014-08-05 15:10:05

Larbin搜索引擎

2011-06-20 18:23:06

SEO

2018-06-24 08:53:42

Tomcat理搜索引擎爬蟲

2010-08-02 16:08:39

ibmdwJava搜索引擎

2009-02-19 09:41:36

搜索引擎搜狐百度

2009-09-22 16:23:52

搜索引擎

2017-08-07 08:15:31

搜索引擎倒排

2020-03-20 10:14:49

搜索引擎倒排索引

2010-06-13 16:27:28

搜索引擎

2016-12-26 13:41:19

大數(shù)據搜索引擎工作原理

2022-10-08 09:13:18

搜索引擎?站

2012-09-07 13:22:21

搜索搜狗

2010-04-20 11:43:46

2015-08-31 10:41:58

搜索引擎Google云應用

2020-02-24 08:52:08

開源索引YaCy

2012-05-14 11:01:50

搜索引擎微軟

2011-06-15 19:09:24

搜索引擎

2011-06-22 17:28:51

SEO

2020-08-10 14:39:30

搜索引擎

2009-07-30 10:40:56

搜索引擎優(yōu)化網站
點贊
收藏

51CTO技術棧公眾號