偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 前端 新聞
在如今信息化、數(shù)字化的時(shí)代,人們已經(jīng)離不開網(wǎng)絡(luò)搜索了,但細(xì)想一下,你在搜索過程中能夠真正獲得相關(guān)信息,是因?yàn)橛腥嗽趲湍惆雅c之相關(guān)的內(nèi)容篩選和呈遞到你面前了。

 在如今信息化、數(shù)字化的時(shí)代,人們已經(jīng)離不開網(wǎng)絡(luò)搜索了,但細(xì)想一下,你在搜索過程中能夠真正獲得相關(guān)信息,是因?yàn)橛腥嗽趲湍惆雅c之相關(guān)的內(nèi)容篩選和呈遞到你面前了。

[[277948]]

就像在飯店里,你點(diǎn)了土豆并且能吃到,是因?yàn)橛腥藥湍阍谕炼埂⑻}卜、西紅柿等中找到土豆,也有人把土豆拿到你桌上。在網(wǎng)絡(luò)上,這兩個(gè)動(dòng)作都是由一位叫做爬蟲的同學(xué)幫你實(shí)現(xiàn)的。

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

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

網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)機(jī)器人,可以代替人們自動(dòng)化瀏覽網(wǎng)絡(luò)中的信息,進(jìn)行數(shù)據(jù)的采集與整理。

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

 

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

 

 

每一個(gè)程序都有自己的規(guī)則,網(wǎng)絡(luò)爬蟲也不例外。它穿梭于全球各個(gè)網(wǎng)站中間,會(huì)根據(jù)人們施加的規(guī)則去采集信息,我們稱這些規(guī)則為網(wǎng)絡(luò)爬蟲算法。規(guī)則是人定的,是人根據(jù)自己的目的與需求設(shè)計(jì)的,因此,根據(jù)使用者的目的,爬蟲可以有不同的功能。但所有爬蟲的本質(zhì),都是方便人們?cè)诤A康幕ヂ?lián)網(wǎng)信息中找到并下載到自己要的那一類,提升信息獲取效率。

二、爬蟲的應(yīng)用:搜索與幫助企業(yè)強(qiáng)化業(yè)務(wù)

1.搜索引擎:爬站點(diǎn),為網(wǎng)絡(luò)用戶提供便利

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

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

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


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

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

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

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

除此以外,網(wǎng)絡(luò)爬蟲還可以應(yīng)用于金融分析中對(duì)金融數(shù)據(jù)進(jìn)行采集,用以進(jìn)行投資分析;應(yīng)用于輿情監(jiān)測(cè)與分析、目標(biāo)客戶精準(zhǔn)營銷等各個(gè)領(lǐng)域。

三、4種企業(yè)常用的網(wǎng)絡(luò)爬蟲

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

1.通用網(wǎng)絡(luò)爬蟲

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

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

2.聚焦網(wǎng)絡(luò)爬蟲

聚焦網(wǎng)絡(luò)爬蟲也叫主題網(wǎng)絡(luò)爬蟲,是按照預(yù)先定義好的主題有選擇地進(jìn)行網(wǎng)頁爬取的一種爬蟲。聚焦網(wǎng)絡(luò)爬蟲主要應(yīng)用在對(duì)特定信息的爬取中,主要為某一類特定的人群提供服務(wù)。

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


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

 

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

 

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

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

(2)根據(jù)這些URL地址從互聯(lián)網(wǎng)中進(jìn)行相應(yīng)的頁面爬取;爬取后,將爬取到的內(nèi)容傳到頁面數(shù)據(jù)庫中存儲(chǔ);

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

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

3.增量式網(wǎng)絡(luò)爬蟲

這里的“增量式”對(duì)應(yīng)著增量式更新,增量式更新指的是在更新的時(shí)候只更新改變的地方,而未改變的地方則不更新。

增量式網(wǎng)絡(luò)爬蟲,在爬取網(wǎng)頁的時(shí)候,只爬取內(nèi)容發(fā)生變化的網(wǎng)頁或者新產(chǎn)生的網(wǎng)頁,對(duì)于未發(fā)生內(nèi)容變化的網(wǎng)頁,則不會(huì)爬取。增量式網(wǎng)絡(luò)爬蟲在一定程度上能夠保證所爬取的頁面,盡可能是新頁面。

4.深層網(wǎng)絡(luò)爬蟲

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

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

四、網(wǎng)絡(luò)爬蟲的爬取策略

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

1.爬取順序

在網(wǎng)絡(luò)爬蟲爬取的過程中,在帶爬取的URL列表中可能有很多URL地址,那么爬蟲爬取這些URL地址就會(huì)有先后順序。

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

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

如圖所示,假設(shè)有一個(gè)網(wǎng)站,ABCDEFG分別為站點(diǎn)下的網(wǎng)頁,如圖所示表示網(wǎng)頁的層次結(jié)構(gòu)。假如此時(shí)網(wǎng)頁ABCDEFG都在爬行隊(duì)列中,那么按照不同的爬行策略,其爬取的順序是不同的。

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

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

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

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

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

2.爬取頻率

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

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

(1)用戶體驗(yàn)策略:大部分用戶在使用搜索引擎查詢某個(gè)關(guān)鍵詞的時(shí)候,只會(huì)關(guān)注排名靠前的網(wǎng)頁,所以,在爬蟲服務(wù)器資源有限的情況下,爬蟲會(huì)優(yōu)先更新排名結(jié)果靠前的網(wǎng)頁。

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

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

五、網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)技術(shù)

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

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

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

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

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

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

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

六、小結(jié)

說到爬蟲,很多人都認(rèn)為它是網(wǎng)絡(luò)世界中一個(gè)不可而為之的灰色地帶。恭喜你,讀完這篇文章,你對(duì)此的認(rèn)知就超過了好多人。

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

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

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

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

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ù)據(jù)搜索引擎工作原理

2012-09-07 13:22:21

搜索搜狗

2022-10-08 09:13:18

搜索引擎?站

2010-04-20 11:43:46

2020-02-24 08:52:08

開源索引YaCy

2015-08-31 10:41:58

搜索引擎Google云應(yīng)用

2011-06-22 17:28:51

SEO

2012-05-14 11:01:50

搜索引擎微軟

2011-06-15 19:09:24

搜索引擎

2020-08-10 14:39:30

搜索引擎

2023-02-08 10:45:23

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)