scrapy间歇性响应为空/降速/缓存

使用 scrapy访问豆瓣的搜索接口时,莫名会出现response json数据为空的情况。
加上回调重新请求 (要设置dont_filter=True 防止被过滤), 还是会出现异常。
最后发现是请求速度过快导致的。

降速:
将其中的访问速度与下载速度调整一下,具体设置:

#并发请求个数(越小越慢) 默认是16个
CONCURRENT_REQUESTS = 5

#下载延迟时间(越大请求越慢)
DOWNLOAD_DELAY = 3

而对于多个spider文件需要不同的请求策略,则可以在爬虫文件中配置单独的 custom_settings:
在这里插入图片描述

自动限速(AutoThrottle):

可参考文档:https://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/autothrottle.html?highlight=auto#autothrottle-algorithm
该扩展能根据Scrapy服务器及您爬取的网站的负载自动限制爬取速度。
更友好的对待网站,而不使用默认的下载延迟0。自动调整scrapy来优化下载速度。

#默认False;为True表示启用AUTOTHROTTLE扩展
AUTOTHROTTLE_ENABLED = True

#默认3秒;初始下载延迟时间
AUTOTHROTTLE_START_DELAY = 1

#默认60秒;在高延迟情况下最大的下载延迟
AUTOTHROTTLE_MAX_DELAY = 3

在这里插入图片描述

httpscatch缓存:
httpscatch 对HTTP请求和响应的缓存。
如果启用 HTTPCACHE_ENABLED 的话,它会缓存每个请求和对应的响应。

HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_IGNORE_HTTP_CODES = []
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

可参考文档:https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考古学家lx(李玺)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值