1

我被困在试图找出解决方案...

我的 Scrapy 蜘蛛抓取一个站点并将一些数据放入项目,然后根据抓取的数据返回一个请求,然后去爬取其他站点以完成该项目。

发生的情况是,有时第二个 URL 可能会返回错误,因此项目也不会被输出。

如何将项目携带到 errback 功能?

提前致谢。

4

1 回答 1

4

文档

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):
    ...
于 2012-08-19T15:05:11.163 回答