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 (队列实现)
广度优先代码的实现(伪代码):
查看全文
相关阅读:
springboot: 使web项目支持jsp
springboot: 集成freemark模板引擎
Springboot的优点和实现
Spring的两种动态代理:Jdk和Cglib 的区别和实现
JAVA单例模式:懒汉式,饿汉式
java的内存管理 对象的分配与释放
JAVA反射调用方法
JAVA内置注解 基本注解
图——图的定义与操作
树——二叉树的线索化
原文地址:https://www.cnblogs.com/cjj-zyj/p/10036771.html
最新文章
Callable和Future
synchronized关键字
JDK中rt.jar、tools.jar和dt.jar作用
nigix配置说明
NIO
Netflix是什么,与Spring Cloud有什么关系
Feign的超时问题
mysql 执行顺序说明
浅谈WCF的三种通信模式:请求响应模式、数据报模式和双工通讯模式
实战:ASP.NET MVC中把Views下面的视图放到Views文件夹外
热门文章
Asp.Net MVC 合并js或css请求
jQuery 模板插件jquery-tmpl
jquery统一关闭浏览器缓存
【深入ASP.NET原理系列】--Asp.Net Mvc和Asp.Net WebForm实际上共用一套ASP.NET请求管道
.NET MVC框架中控制器接收参数的四种方式
.NET MVC控制器向视图传递数据的四种方式
EQueue
.NET程序的性能要领和优化建议
JDBC的概念、实现原理与连接数据库的几种方法
springboot: 集成jdbc
Copyright © 2011-2022 走看看