python - 如何为 Scrapy 请求添加默认 errback
问题描述
我从我的基础蜘蛛那里继承了一堆蜘蛛。我想要的是在请求失败的情况下将调用的 errback。我不想改变我的任何蜘蛛,除了基础蜘蛛。
我在这些蜘蛛中经常遇到的是ResponseNeverReceived
异常,这就是从不调用回调并且不会触发后续请求的原因。
我想为所有请求设置一个默认的 errback,以便在出现任何异常的情况下,twisted.web._newclient.ResponseNeverReceived
或者twisted.web._newclient.ResponseFailed
我可以触发不同的请求。
解决方案
我使用为基础蜘蛛启用的自定义中间件实现了它。
我在中间件中使用的片段:
if hasattr(spider, 'default_errback') and request.errback is None:
request.errback = spider.default_errback
推荐阅读
- javascript - Delete layer mask with actiondescriptor
- c# - 无法执行保存,因为文档已被会话修改并且还参与了延迟 PATCH 命令 RavenDB
- graphql - 如何访问传递给子查询的变量
- go - 如何处理“全部测试”中的预期+无关失败?
- php - PHP函数未按要求执行
- spring-boot - Gradle-没有 GET /WEB-INF/jsp/welcome.jsp 的映射"
- python - WinError6 句柄无效 Python 3+ 多处理
- python - 使用 python 散点图设置 x_tick 值时遇到问题
- vb.net - 如何等到 vb.net 中的 weblient 不再有“404”?
- angular - 在不知道其索引的情况下获取 ViewContainerRef 中的元素?