• 網(wǎng)站的樹結(jié)構(gòu)

  • 深度優(yōu)先算法和實(shí)現(xiàn)

  • 廣度優(yōu)先算法和實(shí)現(xiàn)

網(wǎng)站的樹結(jié)構(gòu)

通過(guò)伯樂(lè)在線網(wǎng)站為例子:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 

 

并且我們通過(guò)訪問(wèn)伯樂(lè)在線也是可以發(fā)現(xiàn),我們從任何一個(gè)子頁(yè)面其實(shí)都是可以返回到首頁(yè),所以當(dāng)我們爬取頁(yè)面的數(shù)據(jù)的時(shí)候就會(huì)涉及到去重的問(wèn)題,我們需要將爬過(guò)的url記錄下來(lái),我們將上圖進(jìn)行更改

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 

 

在爬蟲系統(tǒng)中,待抓取URL隊(duì)列是很重要的一部分,待抓取URL隊(duì)列中的URL以什么樣的順序排隊(duì)列也是一個(gè)很重要的問(wèn)題,因?yàn)檫@涉及到先抓取哪個(gè)頁(yè)面,后抓取哪個(gè)頁(yè)面。而決定這些URL排列順序的方法,叫做抓取策略。下面是常用的兩種策略:深度優(yōu)先、廣度優(yōu)先 

深度優(yōu)先

深度優(yōu)先是指網(wǎng)絡(luò)爬蟲會(huì)從起始頁(yè)開始,一個(gè)鏈接一個(gè)鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個(gè)起始頁(yè),繼續(xù)追蹤鏈接,通過(guò)下圖進(jìn)行理解:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

這里是深度優(yōu)先,所以這里的爬取的順序式:
A-B-D-E-I-C-F-G-H (遞歸實(shí)現(xiàn))

深度優(yōu)先算法的實(shí)現(xiàn)(偽代碼):

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

廣度優(yōu)先

廣度優(yōu)先,有人也叫寬度優(yōu)先,是指將新下載網(wǎng)頁(yè)發(fā)現(xiàn)的鏈接直接插入到待抓取URL隊(duì)列的末尾,也就是指網(wǎng)絡(luò)爬蟲會(huì)先抓取起始頁(yè)中的所有網(wǎng)頁(yè),然后在選擇其中的一個(gè)連接網(wǎng)頁(yè),繼續(xù)抓取在此網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè),通過(guò)下圖進(jìn)行理解:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式