深度优先还是广度优先

来源:互联网 发布:淘宝团队管理自动回复 编辑:程序博客网 时间:2024/04/29 03:43

摘自:http://www.tgxzs.com/article/news-15-101-%CD%F8%C2%E7%D6%A9%D6%EB%3A%C9%EE%B6%C8%D3%C5%CF%C8%BB%B9%CA%C7%B9%E3%B6%C8%D3%C5%CF%C8.html

"网络蜘蛛" 学名Spider,又叫"网络爬虫"! 关于网络蜘蛛的概述这里就不多讲了 今天我主要想说的是 关于 蜘蛛的爬行设计的方式与方法

  我们可以分为2种:

  那么什么是深度优先? 什么是广度优先?有什么用? 上海SEO (SWJ) 下面为大家讲解 !

  本人学知浅薄 只会用 通俗的话与道理与大家分析 如有错误请及时联系我 所以还请大家多多见谅包含!

  一种是 深度优先策略 一种是 广度优先策略! 以下我们就围绕这2点进行分析 SWJ 非常欢迎大家一起交流 学习与探讨!

  深度优先 顾名思义就是 让 网络蜘蛛 尽量的在抓取网页时 往网页更深层次的挖掘进去 讲究的是深度!

  也泛指: 网络蜘蛛将会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接!

  以下我发张图 大家看下: (下面这张是 简单化的网页连接模型图 其中A为起点 也就是蜘蛛索引的起点!)

  总共分了5条路径 供蜘蛛爬行! 讲究的是深度!

网络蜘蛛 深度优先计划图一

  (下面这张是 经过优化的网页连接模型图! 也就是改进过的蜘蛛深度爬行策略图!)

网络蜘蛛 深度优先计划图二

  根据以上2个表格 我们可以得出以下结论:

  图1:

  路径1 ==> A --> B --> E --> H

  路径2 ==> A --> B --> E --> i

  路径3 ==> A --> C

  路径4 ==> A --> D --> F --> K --> L

  路径5 ==> A --> D --> G --> K --> L

  经过优化后

  图2: (图片已经帮大家标上方向了!)

  路径1 ==> A --> B --> E --> H

  路径2 ==> i

  路径3 ==> C

  路径4 ==> D --> F --> K --> L

  路径5 ==> G

  深度爬行的优点是:

  网络蜘蛛程序在设计的时候相对比较容易些把 其他我也没发觉有什么优点... 还有就是 蜘蛛的这种 "勇往直前"的精神 值得学习下! ^_^

  深度爬行的缺点是:

  缺点么 多了一点点 呵呵! 每次爬行一层 总要向"蜘蛛老家" 数据库访问一下 问问老总有必要还要爬下一层吗! 爬一层 问一次.... 引用一句高人的话 如果一个蜘蛛不管3721不断往下爬 很可能迷路 更有可能爬到国外的网站去.. 本来目标是中文网站 因为IP的问题 国外IP做了中文站的话.... 就容易去别人"老家"了..这样不仅增加了系统数据的复杂度 更是增加的服务器的负担 我想没有一家搜索公司会愿意则样的把,...除非脑子"秀"了 .. ^_^

  接下来 我们介绍下普遍使用的 广度优先策略 大家休息下 喝杯咖啡 看的也累把 我写的也累.... ^^

  广度优先 在这里的定义就是 层爬行

  什么叫 蜘蛛 层爬行?

  就是一层一层的爬行 按照层的分布与布局 去索引处理与抓取网页! 当然SE不会派一个蜘蛛去的 每层会派一个或多个蜘蛛Spider去抓取内容!

  (下面这张就是 广度优先策略图(层爬行图))

网络蜘蛛广度优先图

  大家一看就明白了把 聪明的人 下面的文章也不需要看了 答案已经告诉你了 ^ ^

  根据以上表格 我们可以得出以下结论路径图:

  路径1 ==> A

  路径2 ==> B --> C --> D

  路径3 ==> E --> F --> G

  路径4 ==> H --> i --> K

  路径5 ==> L

  广度爬行的优点是:

  广度相对深度 对数据抓取更容易控制些! 对服务器的负栽相应也明显减轻了许多! 爬虫的分布式处理 使的速度明显提高! 其他的想也可以想到拉!

  广度爬行的缺点是:

  暂时还没观察到有什么缺点 呵呵 就好比 DIV+CSS样式表(层布局)一样道理 你觉得有什么缺点吗?