0
我正在使用scrapy-splash从Javascript驱动的IFRAMEd HTML页面中提取信息。有时,由于某些浏览器条件,我的splash Javascript函数失败,并返回错误消息,如{"error": "NotSupportedError: DOM Exception 9"}
)。如何强制scrapy-splash重试失败的项目?
在我的项目管道我为了删除这些项目,以保持我的结果干净:
class NewspaperLayoutPipeline(object):
def process_item(self, item, spider):
if item.has_key('error'):
raise DropItem("Error capturing item %s" % item)
...
不幸的是,我的错误项率约为40%。所以我想让scrapy-splash重试这些失败的网址,而不是简单地删除这些项目。我怎样才能做到这一点?
的感谢!两点评论:我正在使用没有dont_filter参数的SplashRequest。此外,我想设置最大数量的重试以避免无限循环。 – layoutanalysis
它有兄弟。做一个简单的谷歌搜索,你会看到它。 – Umair