更新時(shí)間:2020年09月18日15時(shí)28分 來源:傳智播客 瀏覽次數(shù):
根據(jù)使用場景,網(wǎng)絡(luò)爬蟲可分為通用爬蟲和聚焦爬蟲兩種。通用爬蟲是捜索引擎抓取系統(tǒng)(Baidu、Google、Yahoo等)的重要組成部分,主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地,形成一個互聯(lián)網(wǎng)內(nèi)容的鏡像備份。聚焦爬蟲,是“面向特定主題需求”的一種網(wǎng)絡(luò)爬蟲程序。接下來,就對這兩種爬蟲分別進(jìn)行介紹。
1. 通用爬蟲
通用爬蟲又稱全網(wǎng)爬蟲(Scalable Web Crawler),它將爬取對象從一些種子 URL擴(kuò)充到整個Web上的網(wǎng)站,主要用途是為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。
這類網(wǎng)絡(luò)爬蟲的爬行范圍和數(shù)量巨大,對于爬行速度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時(shí)由于待刷新的頁面太多,通常采用并行工作方式,但需要較長時(shí)間才能刷新一次頁面。
2. 聚焦爬蟲
聚焦爬蟲(Focused Crawler),又稱主題網(wǎng)絡(luò)爬蟲(Topical Crawler),是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)的頁面的網(wǎng)絡(luò)爬蟲。
和通用爬蟲相比,聚焦爬蟲只需要爬行與主題相關(guān)的頁面,從而極大地節(jié)省了硬件和網(wǎng)絡(luò)資源,保存的頁面也由于數(shù)量少而更新快,還可以很好地滿足一些特定人群對特定領(lǐng)域信息的需求。
根據(jù)爬取形式不同,可將爬蟲分為累積式爬蟲和增量式爬蟲。
1. 累積式爬蟲
累積式爬蟲是指從某一個時(shí)間點(diǎn)開始,通過遍歷的方式抓取系統(tǒng)所能允許存儲和處理的所有網(wǎng)頁。在理想的軟硬件環(huán)境下,經(jīng)過足夠的運(yùn)行時(shí)間,累積式抓取的策略可以保證抓取到相當(dāng)規(guī)模的網(wǎng)頁集合。但由于Web數(shù)據(jù)的動態(tài)特性,集合中網(wǎng)頁的被抓取時(shí)間點(diǎn)是不同的,頁面被更新的情況也不同,因此累積式抓取到的網(wǎng)頁集合事實(shí)上并無法與真實(shí)環(huán)境中的網(wǎng)絡(luò)數(shù)據(jù)保持一致。
2. 增量式爬蟲
增量式網(wǎng)絡(luò)爬蟲(Incremental Web Crawler)是指在具有一定量規(guī)模的網(wǎng)絡(luò)頁面集合的基礎(chǔ)上,采用更新數(shù)據(jù)的方式選取已有集合中的過時(shí)網(wǎng)頁進(jìn)行抓取,以保證所抓取到的數(shù)據(jù)與真實(shí)網(wǎng)絡(luò)數(shù)據(jù)足夠接近。進(jìn)行增量式抓取的前提是,系統(tǒng)已經(jīng)抓取了足夠數(shù)量的網(wǎng)絡(luò)頁面,并具有這些頁面被抓取的時(shí)間信息。
和周期性爬行和刷新頁面的網(wǎng)絡(luò)爬蟲相比,增量式爬蟲只會在需要的時(shí)候爬行新產(chǎn)生或發(fā)生更新的頁面,并不重新下載沒有發(fā)生變化的頁面,可有效減少數(shù)據(jù)下載量,及時(shí)更新已爬行的網(wǎng)頁,減小時(shí)間和空間上的耗費(fèi),但是增加了爬行算法的復(fù)雜度和實(shí)現(xiàn)難度。
面向?qū)嶋H應(yīng)用環(huán)境的網(wǎng)絡(luò)蜘蛛設(shè)計(jì)中,通常既包括累積式抓取,也包括增量式抓取的策略。累積式抓取一般用于數(shù)據(jù)集合的整體建立或大規(guī)模更新階段;而增量式抓取則主要針對數(shù)據(jù)集合的日常維護(hù)與即時(shí)更新。
Web 頁面按存在方式可以分為表層網(wǎng)頁(Surface Web)和深層網(wǎng)頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。針對這兩種網(wǎng)頁的爬蟲分別叫做表層爬蟲和深層爬蟲。
1. 表層爬蟲
爬取表層網(wǎng)頁的爬蟲叫做表層爬蟲。表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁為主構(gòu)成的Web頁面。
2. 深層爬蟲
爬取深層網(wǎng)頁的爬蟲就叫做深層爬蟲。深層網(wǎng)頁是那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內(nèi)容才可見的網(wǎng)頁就屬于 Deep Web。
與表層網(wǎng)頁相比,深層網(wǎng)頁上的數(shù)據(jù)爬取更加困難,要采用一定的附加策略才能夠自動爬取。
深層爬蟲爬行過程中最重要部分就是表單填寫,包含兩種類型:
(1)基于領(lǐng)域知識的表單填寫:此方法一般會維持一個本體庫,通過語義分析來選取合適的關(guān)鍵詞填寫表單。
(2)基于網(wǎng)頁結(jié)構(gòu)分析的表單填寫:此方法一般無領(lǐng)域知識或僅有有限的領(lǐng)域知識,將網(wǎng)頁表單表示成DOM樹,從中提取表單各字段值。
猜你喜歡:
Python爬蟲視頻教程:Python爬蟲項(xiàng)目教程下載
北京校區(qū)