小編給大家分享一下爬蟲的實(shí)現(xiàn)原理是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站制作、做網(wǎng)站,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
網(wǎng)絡(luò)爬蟲也被稱作網(wǎng)絡(luò)機(jī)器人、網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)螞蟻、網(wǎng)絡(luò)機(jī)器人等。
網(wǎng)絡(luò)爬蟲通常由控制節(jié)點(diǎn)、爬蟲節(jié)點(diǎn)和資源庫構(gòu)成。
控制節(jié)點(diǎn),也叫做爬蟲的中央控制器,主要負(fù)責(zé)根據(jù)URL地址(URL:UniformResourceLocation,統(tǒng)一資源定位符,即Internet上用來描述信息資源的字符串,主要用在各種www客戶程序和服務(wù)器程序上)分配線程,并調(diào)用爬蟲節(jié)點(diǎn)進(jìn)行具體的爬行任務(wù)。
爬蟲節(jié)點(diǎn),會(huì)按照相關(guān)算法對(duì)網(wǎng)頁進(jìn)行具體爬行(包括下載網(wǎng)頁、對(duì)網(wǎng)頁文本進(jìn)行處理等),爬行后會(huì)將相應(yīng)的結(jié)果存儲(chǔ)到對(duì)應(yīng)的資源庫中。
從圖中我們可以看到,網(wǎng)絡(luò)爬蟲中可以有多個(gè)控制節(jié)點(diǎn),而每個(gè)控制節(jié)點(diǎn)下又可以有多個(gè)爬蟲節(jié)點(diǎn)。
控制節(jié)點(diǎn)之間、控制節(jié)點(diǎn)和其下的各爬蟲節(jié)點(diǎn)間、同一控制節(jié)點(diǎn)下的各爬蟲節(jié)點(diǎn)間都可以相互通信。
了解了網(wǎng)絡(luò)爬蟲的組成,那么,網(wǎng)絡(luò)爬蟲具體有哪些類型呢?
根據(jù)實(shí)現(xiàn)的技術(shù)和結(jié)構(gòu),網(wǎng)絡(luò)爬蟲可以分為通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲和深度網(wǎng)絡(luò)爬蟲等幾種類型。
在實(shí)際的網(wǎng)絡(luò)爬蟲中,通常都是這幾類爬蟲的組合體。
對(duì)于不同類型的網(wǎng)絡(luò)爬蟲,其實(shí)現(xiàn)原理也是不同的,但這些實(shí)現(xiàn)原理中,會(huì)存在很多共性。
下面將以通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲為主,對(duì)網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理進(jìn)行介紹。
通用網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理及過程可簡要概括如下圖:
圖:通用網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理及過程
1. 獲取初始URL
初始URL地址可以由用戶人為指定,也可以由用戶指定的某個(gè)或某幾個(gè)初始爬取網(wǎng)頁決定。
2. 根據(jù)初始URL爬取頁面并獲得新的URL
獲得初始URL地址之后,需要對(duì)對(duì)應(yīng)的網(wǎng)頁進(jìn)行爬取,并將網(wǎng)頁存儲(chǔ)到原始數(shù)據(jù)庫中,同時(shí)將已爬取的URL地址存放到一個(gè)URL列表中,并發(fā)現(xiàn)新的URL地址,以此來用于去重及判斷爬取的進(jìn)程。
3. 將新的URL放到URL隊(duì)列中
在第2步中,會(huì)將新獲取的URL地址放到URL隊(duì)列中。
4. 重復(fù)爬取過程
從URL隊(duì)列中讀取新的URL,并依據(jù)新的URL爬取網(wǎng)頁,同時(shí)再從新網(wǎng)頁中獲取新URL,并重復(fù)上述的爬取過程。
*在編寫爬蟲的時(shí)候,一般會(huì)設(shè)置相應(yīng)的停止條件,當(dāng)過程滿足爬蟲系統(tǒng)設(shè)置的停止條件時(shí)就停止爬取。相對(duì)地,如果沒有設(shè)置停止條件,爬蟲則會(huì)一直爬取下去,直到無法獲取新的URL地址為止。
由于聚焦網(wǎng)絡(luò)爬蟲需要有目的地進(jìn)行爬取,所以相對(duì)于通用網(wǎng)絡(luò)爬蟲來說,聚焦網(wǎng)絡(luò)爬蟲還必須要增加目標(biāo)定義及過濾機(jī)制,即目標(biāo)的定義、無關(guān)鏈接的過濾、下一步要爬取的URL地址的選取等。
整個(gè)過程如下圖所示:
圖:聚焦網(wǎng)絡(luò)爬蟲的基本原理及其實(shí)現(xiàn)過程
1. 對(duì)爬取目標(biāo)的定義和描述
首先依據(jù)爬取需求定義好該聚焦網(wǎng)絡(luò)爬蟲爬取的目標(biāo)及進(jìn)行相關(guān)描述。
2.獲取初始的URL。
3.根據(jù)初始的URL爬取頁面,并獲得新的URL。
4.從新的URL中過濾掉與爬取目標(biāo)無關(guān)的鏈接
因?yàn)榫劢咕W(wǎng)絡(luò)爬蟲對(duì)網(wǎng)頁的爬取是有目的性的,所以與目標(biāo)無關(guān)的網(wǎng)頁將會(huì)被過濾掉。同時(shí),也需要將已爬取的URL地址存放到一個(gè)URL列表中,用于去重和判斷爬取的進(jìn)程。
5.將過濾后的鏈接放到URL隊(duì)列中。
6.根據(jù)搜索算法,從URL隊(duì)列中確定URL的優(yōu)先級(jí)及下一步要爬取的URL地址
對(duì)聚焦網(wǎng)絡(luò)爬蟲來說,不同的爬取順序可能導(dǎo)致爬蟲的執(zhí)行效率不同,因此需要依據(jù)搜索策略來確定下一步需要爬取哪些URL地址。
7.從下一步要爬取的URL地址中,讀取新的URL,然后依據(jù)新的URL地址爬取網(wǎng)頁,并重復(fù)上述爬取過程。滿足系統(tǒng)中設(shè)置的停止條件時(shí),或無法獲取新的URL地址時(shí),停止爬行。
增量式網(wǎng)絡(luò)爬蟲是指對(duì)已下載網(wǎng)頁采取增量式更新并且只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。
網(wǎng)頁按存在方式可以分為表層網(wǎng)頁和深層網(wǎng)頁。
表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁為主。
而深層網(wǎng)頁則是指那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的、只有用戶提交一些關(guān)鍵詞才能獲得的網(wǎng)頁。
深層網(wǎng)絡(luò)爬蟲主要用于針對(duì)深層網(wǎng)絡(luò),其主要的體系結(jié)構(gòu)包含6個(gè)基本功能模塊:
爬行控制器、解析器、表單分析器、表單處理器、響應(yīng)分析器、LVS控制器和兩個(gè)爬蟲內(nèi)部數(shù)據(jù)結(jié)構(gòu)(URL列表和LVS表)。其中,LVS(Label Value Set)表示標(biāo)簽和數(shù)值集合,用來表示填充表單的數(shù)據(jù)源。
在深度網(wǎng)絡(luò)爬蟲的爬取過程中,最重要的部分就是表單填寫,包含基于領(lǐng)域知識(shí)的表單填寫和基于網(wǎng)頁結(jié)構(gòu)分析的表單填寫兩種。
以上是“爬蟲的實(shí)現(xiàn)原理是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章名稱:爬蟲的實(shí)現(xiàn)原理是什么
文章分享:http://chinadenli.net/article4/gdocie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站改版、網(wǎng)站導(dǎo)航、做網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)