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