Scrapy 的优缺点?以及如何设置深度爬取

优点:

1)scrapy 是异步的
2)采取可读性更强的 xpath 代替正则
3)强大的统计和 log 系统
4)同时在不同的 url 上爬行
5)支持 shell 方式,方便独立调试
6)写 middleware,方便写一些统一的过滤器
7)通过管道的方式存入数据库

缺点:

1)基于 python 的爬虫框架,扩展性比较差
2)基于 twisted 框架,运行中的 exception 是不会干掉 reactor(反应器),并且异步框架出错后 是不会停掉其他任务的,数据出错后难以察觉。

设置深度爬取

通过在 settings.py 中设置 depth_limit 的值可以限制爬取深度,这个深度是与 start_urls 中 定义 url 的相对值。也就是相对 url 的深度。若定义 url 为 http://www.domz.com/game/,depth_limit=1 那么限制爬取的只能是此 url 下一级的网页。深 度大于设置值的将被忽视。

scrapy以及scrapy-redis区别

  • scrapy 是一个 Python 爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。
  • 而 scrapy-redis 一套基于 redis 数据库、运行在 scrapy 框架之上的组件,可以让 scrapy 支持分布式策略, Slaver 端共享 Master 端 redis 数据库里的 item 队列、请求队列和请求指纹集合。
  • 为什么选择 redis 数据库,因为 redis 支持主从同步,而且数据都是缓存在内存中的,所以基于 redis 的分布式爬虫,对请求和数据的高频读取效率非常高。

如果你觉得学不会?莫慌,小编推荐大家入群 前面895中间797最后751,群里面有志同道合的小伙伴哦!

你可能感兴趣的:(Scrapy 的优缺点?以及如何设置深度爬取)