我被困在试图找出解决方案...
我的 Scrapy 蜘蛛抓取一个站点并将一些数据放入项目,然后根据抓取的数据返回一个请求,然后去爬取其他站点以完成该项目。
发生的情况是,有时第二个 URL 可能会返回错误,因此项目也不会被输出。
如何将项目携带到 errback 功能?
提前致谢。
我被困在试图找出解决方案...
我的 Scrapy 蜘蛛抓取一个站点并将一些数据放入项目,然后根据抓取的数据返回一个请求,然后去爬取其他站点以完成该项目。
发生的情况是,有时第二个 URL 可能会返回错误,因此项目也不会被输出。
如何将项目携带到 errback 功能?
提前致谢。
从文档:
errback (callable) – 如果在处理请求时引发任何异常,将调用该函数。这包括因 404 HTTP 错误等而失败的页面。它接收 Twisted Failure 实例作为第一个参数。
尝试使用 lambda:
...
yield Request(..., errback=lambda failure, item=item: self.on_error(failure, item))
def on_error(self, failure, item):
...