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

網(wǎng)絡(luò)爬蟲基本原理(一)

大數(shù)據(jù)
網(wǎng)絡(luò)爬蟲是捜索引擎抓取系統(tǒng)的重要組成部分。爬蟲的主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地形成一個或聯(lián)網(wǎng)內(nèi)容的鏡像備份。這篇文章主要對爬蟲以及抓取系統(tǒng)進行一個簡單的概述。

一、網(wǎng)絡(luò)爬蟲的基本結(jié)構(gòu)及工作流程

一個通用的網(wǎng)絡(luò)爬蟲的框架如圖所示:

 

 

網(wǎng)絡(luò)爬蟲的基本工作流程如下:

1.首先選取一部分精心挑選的種子URL;

2.將這些URL放入待抓取URL隊列;

3.從待抓取URL隊列中取出待抓取在URL,解析DNS,并且得到主機的ip,并將URL對應(yīng)的網(wǎng)頁下載下來,存儲進已下載網(wǎng)頁庫中。此外,將這些URL放進已抓取URL隊列。

4.分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進入下一個循環(huán)。

二、從爬蟲的角度對互聯(lián)網(wǎng)進行劃分

對應(yīng)的,可以將互聯(lián)網(wǎng)的所有頁面分為五個部分

 


1.已下載未過期網(wǎng)頁

 

2.已下載已過期網(wǎng)頁:抓取到的網(wǎng)頁實際上是互聯(lián)網(wǎng)內(nèi)容的一個鏡像與備份,互聯(lián)網(wǎng)是動態(tài)變化的,一部分互聯(lián)網(wǎng)上的內(nèi)容已經(jīng)發(fā)生了變化,這時,這部分抓取到的網(wǎng)頁就已經(jīng)過期了。

3.待下載網(wǎng)頁:也就是待抓取URL隊列中的那些頁面

4.可知網(wǎng)頁:還沒有抓取下來,也沒有在待抓取URL隊列中,但是可以通過對已抓取頁面或者待抓取URL對應(yīng)頁面進行分析獲取到的URL,認(rèn)為是可知網(wǎng)頁。

5.還有一部分網(wǎng)頁,爬蟲是無法直接抓取下載的。稱為不可知網(wǎng)頁。

三、抓取策略

在爬蟲系統(tǒng)中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什么樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:

1.深度優(yōu)先遍歷策略

深度優(yōu)先遍歷策略是指網(wǎng)絡(luò)爬蟲會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個起始頁,繼續(xù)跟蹤鏈接。我們以下面的圖為例:

 

 

 

 

遍歷的路徑:A-F-G E-H-I B C D

2.寬度優(yōu)先遍歷策略

寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁中發(fā)現(xiàn)的鏈接直接插入待抓取URL隊列的末尾。也就是指網(wǎng)絡(luò)爬蟲會先抓取起始網(wǎng)頁中鏈接的所有網(wǎng)頁,然后再選擇其中的一個鏈接網(wǎng)頁,繼續(xù)抓取在此網(wǎng)頁中鏈接的所有網(wǎng)頁。還是以上面的圖為例:

遍歷路徑:A-B-C-D-E-F G H I

3.反向鏈接數(shù)策略

反向鏈接數(shù)是指一個網(wǎng)頁被其他網(wǎng)頁鏈接指向的數(shù)量。反向鏈接數(shù)表示的是一個網(wǎng)頁的內(nèi)容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統(tǒng)會使用這個指標(biāo)來評價網(wǎng)頁的重要程度,從而決定不同網(wǎng)頁的抓取先后順序。

在真實的網(wǎng)絡(luò)環(huán)境中,由于廣告鏈接、作弊鏈接的存在,反向鏈接數(shù)不能完全等他我那個也的重要程度。因此,搜索引擎往往考慮一些可靠的反向鏈接數(shù)。

4.Partial PageRank策略

Partial PageRank算法借鑒了PageRank算法的思想:對于已經(jīng)下載的網(wǎng)頁,連同待抓取URL隊列中的URL,形成網(wǎng)頁集合,計算每個頁面的PageRank值,計算完之后,將待抓取URL隊列中的URL按照PageRank值的大小排列,并按照該順序抓取頁面。

如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面后,重新計算一次PageRank值。但是這種情況還會有一個問題:對于已經(jīng)下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網(wǎng)頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網(wǎng)頁所有入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。下面舉例說明:

5.OPIC策略策略

該算法實際上也是對頁面進行一個重要性打分。在算法開始前,給所有頁面一個相同的初始現(xiàn)金(cash)。當(dāng)下載了某個頁面P之后,將P的現(xiàn)金分?jǐn)偨o所有從P中分析出的鏈接,并且將P的現(xiàn)金清空。對于待抓取URL隊列中的所有頁面按照現(xiàn)金數(shù)進行排序。

6.大站優(yōu)先策略

對于待抓取URL隊列中的所有網(wǎng)頁,根據(jù)所屬的網(wǎng)站進行分類。對于待下載頁面數(shù)多的網(wǎng)站,優(yōu)先下載。這個策略也因此叫做大站優(yōu)先策略。

責(zé)任編輯:趙寧寧 來源: 36大數(shù)據(jù)
相關(guān)推薦

2016-08-18 00:04:09

網(wǎng)絡(luò)爬蟲抓取系統(tǒng)服務(wù)器

2012-01-12 14:37:34

jQuery

2009-02-24 09:43:00

IP電話原理

2011-11-29 12:17:00

2010-08-20 13:29:33

OFDM

2013-04-07 14:09:55

Android應(yīng)用基本

2019-11-28 10:45:28

ZooKeeper源碼分布式

2020-03-21 14:57:14

手機定位智能手機APP

2021-02-08 21:40:04

SockmapBPF存儲

2021-04-27 19:21:48

HBase原理開源

2020-12-29 16:55:44

ZooKeeper運維數(shù)據(jù)結(jié)構(gòu)

2011-07-07 14:10:21

Cocoa 內(nèi)省 hash

2009-06-11 09:56:09

MySQL Repli原理

2010-03-17 13:35:02

2011-07-07 14:46:10

Cocoa Xcode

2010-03-18 20:13:03

Java socket

2018-04-03 11:20:00

深度學(xué)習(xí)

2020-12-29 07:32:59

Redis 列表數(shù)據(jù)

2019-04-30 08:15:31

2010-06-18 17:28:37

Linux Anacr
點贊
收藏

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