Python RequestsCache仍在查询远程URL

2024-04-26 21:05:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Requests-Cache库来缓存来自Requests的结果。它似乎安装了一个缓存刚刚好;请求URL将创建一个.sqlite缓存文件,后续请求将检索该数据,即使远程页面发生更改

今天我的互联网连接很差,我注意到我的脚本(它发出许多(应该是缓存的)请求)运行得很慢。作为一个快速的健康检查,我尝试了一个测试脚本来创建缓存,然后在断开我的计算机与wifi的连接后再次运行它。但是,这一错误是:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='magicplugin.normalitycomics.com', port=80): Max retries exceeded with url: /update/updatelist.txt (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x110390d68>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))

如果请求缓存正在重定向请求以使用本地缓存数据,为什么请求甚至试图连接到远程站点?有没有办法避免这种情况?我不需要减慢我的脚本速度(特别是当我的连接很差时),也不需要从服务器发出不必要的请求


Tags: 文件数据脚本urlcachesqlite远程计算机
1条回答
网友
1楼 · 发布于 2024-04-26 21:05:32

我知道了

我的实际代码发出请求,有时成功地获取页面,有时获取404

我的简单测试脚本复制这个问题的唯一原因是我在请求的页面中输入了一个错误。收到的请求为404。即使请求缓存创建了一个缓存文件,它也没有将此结果存储在其中

默认情况下,请求缓存only caches 200-code responses, but this is configurable

requests_cache.install_cache('example_cache', allowable_codes=(200, 404))

现在它工作得很好

相关问题 更多 >