python爬虫算法深度优先_Python爬虫从入门到放弃(十)之 关于深度优先和广度优先...

网站的树结构

深度优先算法和实现

广度优先算法和实现

网站的树结构

通过伯乐在线网站为例子:

1179613-20170722190530840-1716162464.png

并且我们通过访问伯乐在线也是可以发现,我们从任何一个子页面其实都是可以返回到首页,所以当我们爬取页面的数据的时候就会涉及到去重的问题,我们需要将爬过的url记录下来,我们将上图进行更改

1179613-20170722190548168-1810153109.png

在爬虫系统中,待抓取URL队列是很重要的一部分,待抓取URL队列中的URL以什么样的顺序排队列也是一个很重要的问题,因为这涉及到先抓取哪个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面是常用的两种策略:深度优先、广度优先

深度优先

深度优先是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续追踪链接,通过下图进行理解:

1179613-20170722190636825-1336364710.png

这里是深度优先,所以这里的爬取的顺序式:

A-B-D-E-I-C-F-G-H (递归实现)

深度优先算法的实现(伪代码):

1179613-20170722190647528-1589549501.png

广度优先

广度优先,有人也叫宽度优先,是指将新下载网页发现的链接直接插入到待抓取URL队列的末尾,也就是指网络爬虫会先抓取起始页中的所有网页,然后在选择其中的一个连接网页,继续抓取在此网页中链接的所有网页,通过下图进行理解:

1179613-20170722190701168-584744001.png

还是以这个图为例子,广度优先的爬取顺序为:

A-B-C-D-E-F-G-H-I (队列实现)

广度优先代码的实现(伪代码):

1179613-20170722190719262-1421764434.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值