SEO深度優先算法-廣度優先算法
深度優先算法
為了解釋什么是深度優先算法和廣度優先算法,我們舉一個例子。
大家都打過RPG游戲吧,在游戲里面我們會找NPC來接任務。有的同學喜歡一次只領取一個任務,把這個任務做完,再去領下一個任務,這就叫做深度優先算法。另外一些同學他們喜歡先把所有的任務一次性接玩,然后再去慢慢完成,最后再一次性的把任務獎勵都領取了。這就叫做廣度優先算法。
假設上圖是IT培訓的網站,我們需要爬取上面的課程信息。從首頁開始,課程有幾個大的分類,比如根據語言分為Python,Node.js和Go語言。在每個大分類下面又有很多的課程,比如Python下面有爬蟲,Django和機器學習。在每個課程又分為很多的課時。
在深度優先算法的情況下,我們的爬取路線如下圖所示:
首先要走完紅色線,把爬蟲的所有課時都爬取完成,再走綠色線爬取Django的所有課時,最后再走黃色線爬取機器學習的的所有課時。然后再去爬取Node.js的所有信息……
廣度優先算法
在廣度優先的算法情況下,我們的爬取路線如下圖所示:
首先走紅色,綠色,肉色線爬取每個大分類的信息。然后再走橙色,藍色,灰色線從第一個大分類中,爬取所有的課程信息,爬完了第一個大分類,再爬第二個大分類。直到所有大分類下面的課程信息都搞定了,再爬第一個課程的所有課時信息……