gpt4 book ai didi

Python Requests-Cache 仍在查询远程 URL

转载 作者:行者123 更新时间:2023-12-04 10:08:52 24 4
gpt4 key购买 nike

我正在使用 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'))

如果 Requests-Cache 将请求重定向到使用本地缓存数据,为什么请求还要尝试连接到远程站点?有没有办法避免这种情况?我不需要放慢我的脚本(特别是当我的连接很差时)并从服务器发出不必要的请求。

最佳答案

我想通了!

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

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

事实证明,默认情况下,Requests-Cache only caches 200-code responses, but this is configurable :

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

现在一切正常!

关于Python Requests-Cache 仍在查询远程 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61434140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com