网络爬虫(三)------宽度优先爬虫(一个的基础,简单但是很重要哦)
来源:互联网 发布:二端口网络z参数方程 编辑:程序博客网 时间:2024/05/05 23:58
在实际项目中,我们使用爬虫遍历互联网,把网络中相关的网页全部抓取过来,这也体现了爬虫的特点。爬虫爬行的过程是这样子的:互联网中每一个页面看作是一个节点,页面中的链接可以看成图的有向边。所以能用遍历的方式对互联网进行访问。
一提到图的遍历,很容易就是宽度优先遍历和深度优先遍历。
但是深度优先遍历可能会在深度上过深地遍历或者陷入黑洞,大部分爬虫不采用这种方式。但是宽度优先遍历也不是完全的宽度优先,而是采用对宽度优先的网页赋予一定的优先级。也就是通常我们说的带有偏好的宽度遍历。
图的宽度优先
简述:图的宽度优先遍历(BFS)算法是一个分层搜索的过程,和树的层序遍历算法相同,在图中选中一个节点,作为起始点,然后按照层次遍历的方式,一层一层访问。
思想:(1)节点A入队
(2)当队列非空时候继续入队
(3)队满,出队列,获得头节点A,访问A,并标记A已经被访问了
(4)查找顶点A的第一个邻接节点A1
(5)如果A1没有访问过,进队
(6)继续查找A的其他邻接节点,转(5)继续,如果所有邻接节点都访问过了,转(2)
接下来举个例子,来源于自己动手写爬虫这本书,实际上,我的文章也是这本书的个人心得而已,大家都是学习的菜鸟。
遍历过程如下:
总结:在表1.2所示的遍历过程,出队列的节点顺序既是图的宽度优先遍历的访问顺序,由此可以看出,图1.3所示的宽度优先遍历顺序为:A-〉B-〉C-〉D-〉E-〉F-〉H-〉G-〉I 。这里是一个基础,我们做什么事情都要从基础做起嘛,不能心急
- 网络爬虫(三)------宽度优先爬虫(一个的基础,简单但是很重要哦)
- 一个简单的宽度优先网络爬虫
- c#宽度优先的网络爬虫
- 网络爬虫(六):一个简单的百度贴吧小爬虫
- 网络爬虫中用到的宽度优先遍历算法
- 一个简单的Web客户端(网络爬虫)
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- [Python]网络爬虫(六):一个简单的百度贴吧的小爬虫
- 网络爬虫(三) Java实现简单的网络爬虫
- 深圳市解放路网络科技有限公司
- 简学LINGO(三)——实例篇
- 什么事垂直网站和垂直收索
- C++中的前置声明(Forward Declaration)
- 删除svn的.svn文件
- 网络爬虫(三)------宽度优先爬虫(一个的基础,简单但是很重要哦)
- 旋转数组的最小数字
- hdu-2049-不容易系列之(4)——考新郎(错排+组合)
- DNW报错Can not open /dev/secbulk0解决
- hd 2176 取(m堆)石子游戏
- 提高页面加载速度简单易行的四个办法。
- JVM中的常量池解析
- mainframe、z/OS、cobol、jcl的关系
- 队列