在存储的数据上重播Scrapy蜘蛛

del*_*del 13 python web-crawler scrapy

我已经开始使用Scrapy来搜索一些网站.如果我稍后在我的模型中添加一个新字段或更改我的解析函数,我希望能够"重播"下载的原始数据,以便再次删除它.看起来Scrapy能够在一个点上将原始数据存储在重放文件中:

http://dev.scrapy.org/browser/scrapy/trunk/scrapy/command/commands/replay.py?rev=168

但是这个功能似乎已经在当前版本的Scrapy中被删除了.还有另一种方法来实现这一目标吗?

Tim*_*ara 19

如果你跑crawl --record=[cache.file] [scraper],你就可以使用了replay [scraper].

或者,你可以缓存与所有的反应HttpCacheMiddleware将其包含在DOWNLOADER_MIDDLEWARES:

DOWNLOADER_MIDDLEWARES = {
    'scrapy.contrib.downloadermiddleware.httpcache.HttpCacheMiddleware': 300,
}
Run Code Online (Sandbox Code Playgroud)

如果这样做,每次运行刮刀时,它都会先检查文件系统.


fxp*_*fxp 5

您可以启用 HTTPCACHE_ENABLED,如http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html?highlight=FilesystemCacheStorage#httpcache-enabled

缓存所有http请求和响应以实现恢复爬行。

或尝试 Jobs 暂停并恢复抓取 http://scrapy.readthedocs.org/en/latest/topics/jobs.html