我们需要能够重新抓取历史数据。想象今天是六月二十三日。我们今天抓取了一个网站,但几天之后,我们意识到我们必须重新抓取它,“看到”它与23日一模一样。这意味着,包括所有可能的重定向,GET和POST请求等。蜘蛛看到的所有页面应该与第23页完全一样,不管它是什么。Scrapy永久缓存
使用案例:如果网站发生变化,而我们的蜘蛛无法抓取某些东西,我们希望能够恢复“过去”并在修复后重新运行蜘蛛。
一般情况下,这应该是很容易 - 子类标准Scrapy的缓存,强制使用日期的子文件夹,并有类似的东西:
cache/spider_name/2015-06-23/HERE ARE THE CACHED DIRS
但是当我用这个实验,我意识到有时蜘蛛抓取现场网站。这意味着,它不会从缓存中获取一些页面(尽管磁盘上存在适当的文件),而是从实时网站中获取它们。它发生在具有验证码的页面上,特别是,但也许还有其他一些。
我们如何强制Scrapy总是从缓存中取走页面,而不是直接打到活网站?理想情况下,它甚至可以在没有互联网连接的情况下工
更新:我们使用了假人政策和HTTPCACHE_EXPIRATION_SECS = 0
谢谢!