zoukankan
html css js c++ java
关于深度优先和广度优先
在爬虫系统中,待抓取URL队列是很重要的一部分,待抓取URL队列中的URL以什么样的顺序排队列也是一个很重要的问题,因为这涉及到先抓取哪个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面是常用的两种策略:深度优先、广度优先
scrapy框架默认的是深度优先算法
深度优先与广度优先算法避免爬虫运行的时候,需要返回造成数据重复
深度优先
这里是深度优先,所以这里的爬取的顺序式:
A-B-D-E-I-C-F-G-H (递归实现)
深度优先算法代码实现(伪代码):
广度优先:
广度优先,有人也叫宽度优先,是指将新下载网页发现的链接直接插入到待抓取URL队列的末尾,也就是指网络爬虫会先抓取起始页中的所有网页,然后在选择其中的一个连接网页,继续抓取在此网页中链接的所有网页,通过下图进行理解:
还是以这个图为例子,广度优先的爬取顺序为:
A-B-C-D-E-F-G-H-I (队列实现)
广度优先代码的实现(伪代码):
查看全文
相关阅读:
关于React的脚手架
yarn和npm
谈谈NPM和Webpack的关系
php开发环境和框架phalcon的搭建
Centos6.5--svn搭建
System.Diagnostics.Process.Start(ProcessStartInfo)
PHP错误:call to undefined function imagecreatetruecolor
PostgreSQL删除表中重复数据行
URL存在http host头攻击漏洞-修复方案
for循环的执行顺序
原文地址:https://www.cnblogs.com/cjj-zyj/p/10036771.html
最新文章
大规模数据处理的演化历程(2003-2018)
以盛唐气象,浇胸中块垒:熊逸《唐诗50讲》学习笔记汇总
孤单是一个人的狂欢
pandas一些基本操作(DataFram和Series)_1
np一些基本操作2
np一些基本操作1
java线程队列
hue mysql连接不上数据库排查
hdfs写并发问题
drools跳转出现错误问题(400)
热门文章
hiveUDF的使用
mysql下突然丢失权限
卡方分布的公式推演过程和一些细节
强大的时间处理库 moment
重磅!滴滴跨端框架Chameleon 1.0正式发布
exports与module.exports,export与export default 之间的关系和区别
Mobx-React : 当前最适合React的状态管理工具
Ant Design 学习记录
解决Error: Can't find Python executable "python", you can set the PYTHON env variable
pod install安装第三方库异常
Copyright © 2011-2022 走看看