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 (队列实现)
广度优先代码的实现(伪代码):
查看全文
相关阅读:
在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
使用Sublime Text 3进行Markdown 编辑+实时预览
ni_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法
CORS跨域的概念与TP5的解决方案
tp5模型笔记---多对多
微信小程序 GMT+0800 (中国标准时间) WXSS 文件编译错误
ESP8266 LUA脚本语言开发: 外设篇-GPIO输入检测
ESP8266 LUA脚本语言开发: 外设篇-GPIO输出高低电平
ESP8266 LUA脚本语言开发: 准备工作-LUA文件加载与变量调用
ESP8266 LUA脚本语言开发: 准备工作-LUA开发说明
原文地址:https://www.cnblogs.com/cjj-zyj/p/10036771.html
最新文章
ORACLE关于锁表查询的部分SQL
DBCP连接池配置参数说明
Spring+DBUnit+H2----项目单元测试
Ubuntu下配置jdk及maven等方法
oracle创建表空间
windows查看端口占用命令
maven 下载源码
从servlet中获取spring的WebApplicationContext
Hibernate常用查询语句
oracle connect nocycle
热门文章
8种Nosql数据库系统对比
基于Mongodb进行分布式数据存储
mongoDB 入门指南、示例
Java操作MongoDB
java 反射获取属性值 方法
oracle client字符集设置 乱码问题
oracle 常用SQL
Html5弹幕视频播放器插件
【PHP】五分钟教你编写一个实时弹幕网站
微信支付回调数据获取问题
Copyright © 2011-2022 走看看