更新時(shí)間:2023-10-13 來源:黑馬程序員 瀏覽量:
通用網(wǎng)絡(luò)爬蟲的采集目標(biāo)是整個(gè)互聯(lián)網(wǎng)上的所有網(wǎng)頁,它會先從一個(gè)或多個(gè)初始URL開始,獲取初始URL對應(yīng)的網(wǎng)頁數(shù)據(jù),并不斷從該網(wǎng)頁數(shù)據(jù)中抽取新的URL放到隊(duì)列中,直至滿足一定的條件后停止。
通用網(wǎng)絡(luò)爬蟲的工作原理如圖1所示。
通用網(wǎng)絡(luò)爬蟲的工作原理
關(guān)于圖1中各環(huán)節(jié)的介紹如下。
(1)獲取初始URL。初始URL是精心挑選的一個(gè)或多個(gè)URL,也稱種子URL,它既可以由用戶指定,也可以由待采集的初始網(wǎng)頁指定。
(2)有了初始URL之后,需要根據(jù)初始URL抓取對應(yīng)的網(wǎng)頁,之后將該網(wǎng)頁存儲到原始網(wǎng)頁數(shù)據(jù)庫中,并且在抓取網(wǎng)頁的同時(shí)對網(wǎng)頁內(nèi)容進(jìn)行解析,從中提取出新URL。
(3)有了新URL之后,需要將新URL放入U(xiǎn)RL隊(duì)列中。
(4)從URL隊(duì)列中讀取新URL,以準(zhǔn)備根據(jù)URL抓取下一個(gè)網(wǎng)頁。
(5)若網(wǎng)絡(luò)爬蟲滿足設(shè)置的停止條件,則停止采集;若網(wǎng)絡(luò)爬蟲沒有滿足設(shè)置的停止條件,則繼續(xù)根據(jù)新URL抓取對應(yīng)的網(wǎng)頁,并重復(fù)步驟(2)~步驟(5)。需要注意的是,如果沒有設(shè)置停止條件,網(wǎng)絡(luò)爬蟲會一直采集下去,直到?jīng)]有可以采集的新URL為止。
Kafka怎樣判斷一個(gè)節(jié)點(diǎn)是否存活?
2023-10-13Python培訓(xùn)需要多少錢?靠譜的Python培訓(xùn)機(jī)構(gòu)推薦
2023-10-13如何用Python來進(jìn)行查詢和替換一個(gè)文本字符串?
2023-10-12Spark的數(shù)據(jù)本地性有哪幾種?
2023-10-09使用Python進(jìn)行網(wǎng)絡(luò)爬蟲開發(fā)有哪些優(yōu)勢?
2023-10-09Hadoop3.x相對于之前版本有哪些優(yōu)化?【Hadoop架構(gòu)變遷史】
2023-10-05