我正在尝试删除.scrapy文件夹来删除缓存。通常它可以工作,但现在当我运行我的蜘蛛时,它总是获得缓存的响应。因为文件夹被删除,我不知道从哪里获取它们。我已经尝试更改蜘蛛名称/文件夹名称/创建一个新项目并在其中粘贴代码等。
更令人费解的是,Process Monitor工具向我展示了从该空文件夹打开的缓存文件,而不是先创建。缓存文件刚刚打开和关闭,但我在文件夹中看不到它们。我之前没有在那个文件夹中看到它们,也没有在运行蜘蛛后看到它们。它们未被隐藏,显示隐藏文件选项已被选中。
我唯一可以想象的是Scrapy以某种方式将它们保存在数据库中并将它们显示为从缓存文件夹中获取。但在这种情况下,为什么没有进程管理器显示正在创建和删除的文件?在新文件夹中重命名并粘贴项目3个小时后,我在这里发疯了,缓存仍然挂起。
更新:我已在进程监视器中应用了一个过滤器,我可以看到正在创建的文件,但我看不到它们被删除(我使用SetDispositionInformationFiles查看已删除的文件)那些)。文件夹大小也非常小(20KB),所以除非Windows报告错误,否则我的巨型缓存无法从那里获取。
将Process Manager和隐藏的缓存文件放在一边......我还有什么方法可以看到Scrapy从哪里获取缓存? (我不能只禁用缓存,我需要缓存功能,我只需要丢弃旧缓存)
答案 0 :(得分:1)
原来这只是因为我将dont_filter设置为True而不是相同的链接而不是不同的链接,所以它没有获得5K链接,但相同的链接5K次。 所以没有Scrapy的神秘行为只是我的粗心大意。这里有大生命的教训:D