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 (队列实现)
广度优先代码的实现(伪代码):
查看全文
相关阅读:
【C++】对象模型
【C++多线程】读写锁shared_lock/shared_mutex
【C++多线程】共享数据的初始化保护
【C++多线程】共享数据保护
【C++多线程】lock_guard<T>类和unique_lock<T>类
【C++多线程】转移线程所有权
【C++ 】std::ref()和std::cref()
【C++多线程】传递参数
【C++多线程】detach()及注意
linux 打开CHM文件
原文地址:https://www.cnblogs.com/cjj-zyj/p/10036771.html
最新文章
ISO 639-1标准语言代码
C#中的PLINQ(并行LINQ)
C# System.Threading.AutoResetEvent和System.Threading.ManualResetEvent区别
P/Invoke各种总结(三、与字符串交互char*,wchar_t*)
P/Invoke各种总结(二、Blittable and Non-Blittable Types 可直接复制的类型和非可直接复制的类型)
P/Invoke各种总结(一、使用StructLayout特性来控制内存结构)
XML 的一些总结
如何在WPF中自定义控件:选择继承的基类
VisualStudio 2019中XAML的新增功能
C#使用CSS选择器抓取页面内容
热门文章
anaconda + django + apache2
Ubuntu 中 Apache2 安装、配置、卸载
cartoonset
anaconda errors
pytorch 多GPU 训练
aptitude search 找不到较新版本的nvidia driver 和CUDA
制作U盘启动盘
frechet inception distance
inception score
【C++】对象模型之Data
Copyright © 2011-2022 走看看