网络爬虫中用到的宽度优先遍历算法
来源:互联网 发布:如何使用linux系统 编辑:程序博客网 时间:2024/05/25 23:25
最近学习自己动手写网络爬虫
书中涉及到了图的宽度优先遍历,其中很重要的一点是图的宽度优先遍历需要一个队列(队列的特点:先进先出)作为保存当前节点的子节点的数据结构。
以上图为例图的宽度优先遍历算法描述为:
1.首先访问顶点A,将顶点A入队
2.之后因为要访问A的邻接点,应先将A出队(我认为当要访问某个节点的邻接点时,应先将该节点从使其出队,之后访问该节点的邻接点),然后将A节点的邻接点B,C,D,E,F入队;
3.因为队列先进先出,且还要依次访问队列中各节点的邻接点,所以将B出队,B无邻接点,于是C出队,C亦无无邻接点,于是D出队,同理应E出队,E有邻接点H,所以E出队后,H入队,因为宽度优先,所以应让与H处于同一层的G入队,但是G入队之前,应先使F出队,F出队之后,G入队;
4.G入队之后,队列中有HG两个节点,此时H处于对头,将H出队,H的邻接点I入队,此时图中的所有节点均已进入过队列,便不再入队;
5.队列中的节点为HI,将HI先后出队,H先出队,I后出队,之后队列为空。
整个过程中队列中节点的变化如下图:
这便相当于网络爬虫中的待抓取URL队列,队列为空后,爬虫便停止运行。
上述内容如有错误望前辈们指正,谢谢!
- 网络爬虫中用到的宽度优先遍历算法
- 爬虫宽度优先遍历
- 一个简单的宽度优先网络爬虫
- c#宽度优先的网络爬虫
- 《自己动手写网络爬虫》笔记3-宽度优先遍历互联网
- 网络爬虫(四)-----宽度优先遍历互联网(实现思想)
- 算法学习:图的宽度优先遍历(BFS)
- 树的宽度优先遍历
- 图的宽度优先遍历
- 网络爬虫(三)------宽度优先爬虫(一个的基础,简单但是很重要哦)
- 一种 树节点宽度优先遍历算法
- 宽度优先遍历算法求部门树
- 图的遍历:宽度优先遍历
- 基于宽度优先爬虫
- 宽度优先爬虫
- 宽度优先爬虫
- 图的宽度优先遍历序列
- NOJ1048图的宽度优先遍历序列
- WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)
- SOA之添加异常处理
- heap STL
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
- 数理逻辑:公理化算术(11)递归谓词
- 网络爬虫中用到的宽度优先遍历算法
- 数理逻辑:公理化算术(12)递归谓词的其他形成方法,有限量词
- 50个python库(收藏)
- 高分辨率AVD显示不全问题
- LinuxC/C++编程基础(10) quicksort的简单实现
- 数理逻辑:公理化算术(13)形成新递归项的例子
- 你见过我的银行吗?不如来看看吧。。。
- iOS开发:Debug与Release版本NSLog屏蔽方法
- 数理逻辑:公理化算术(14)可计算谓词和项的几个例子