我试图找出一个解决方案......
我的Scrapy蜘蛛抓取网站并将一些数据输入到项目中,然后根据抓取的数据返回请求,然后抓取其他网站以完成该项目。
它发生的情况是,有时第二个URL可以返回错误,因此项目也不会输出。
如何将项目带到errback功能?
提前致谢。
答案 0 :(得分:3)
来自docs:
errback(callable) - 如果有任何异常将被调用的函数 在处理请求时被引发。这包括页面 失败了404 HTTP错误等。它收到一个扭曲的失败 instance作为第一个参数。
尝试使用lambda:
...
yield Request(..., errback=lambda failure, item=item: self.on_error(failure, item))
def on_error(self, failure, item):
...