深度优先搜索策略
原创:http://www.qicheng.org/
搜索引擎蜘蛛在抓取网页的时候,一般有两种搜索策略:广度优先搜索策略和深度优先搜索策略。
深度优先搜索策略是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。
优点:网络蜘蛛在设计的时候比较容易;
缺点:不适合大数据量的网站的使用,更加不适合未来搜索引擎的使用;
深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。优点是能遍历一个Web 站点或深层嵌套的文档集合;缺点是因为Web结构相当深,,有可能造成一旦进去,再也出不来的情况发生。

如果我们从A点发起深度优先搜索(以下的访问次序并不是唯一的,第二个点既可以是B也可以是C、D),则我们可能得到如下的一个访问过程:A->B->E(没有路了,回溯到A)->C->F->H->G->D(没有路,最终回溯到A,A也没有未访问的相邻节点,本次搜索结束)。
深度优先搜索的特点:每次深度优先搜索的结果必然是图的一个连通分量。深度优先搜索可以从多点发起,如果将每个节点在深度优先搜索过程中的“结束时间”排序(具体做法是创建一个list,然后在每个节点的相邻节点都已被访问的情况下,将该节点加入list结尾,然后逆转整个链表),则我们可以得到所谓的“拓扑排序:,即topological sort。
当然,当人们刚刚掌握深度优先搜索的时候,常常用它来走迷宫。事实上,我们还有别的方法,那就是广度优先搜索(BFS)状态(state):状态是制问题求解过程中每一步的状况。广度优先搜索策略,大家可以参考文章“广度优先搜索策略”。
启程官方(www.qicheng.org)可能谈了那么久,大家对于搜索引擎蜘蛛的概念还比较模糊,如果是的话,建议大家先阅览文章“搜索引擎蜘蛛”,在了解了深度优先搜索策略之后,您是不是对于搜索引擎有了新的认识,对于SEO有了新的看法?不会对于SEO的概念还是模糊吧?什么是SEO?还需要再看看吗?再看看吧……
文章来源:http://www.qicheng.org/seo/depth-first-search-traversal.html
转载请注明版权:SEO 浏览更多SEO文档,请关注青岛网站优化、青岛网站推广服务团队。
版权所有。转载时必须以链接形式注明文章原始出处!