【发布时间】:2020-04-22 14:20:59
【问题描述】:
我已经阅读了很多 requests 和 urllib 教程,这几乎是犯罪,但由于某种原因我无法下载文件的最新版本。
会发生什么:
成功下载最新版
bglug.py。一切都像魅力一样。我在 GitHub 上更新
bglug.py以显示最新的详细信息。当我再次运行更新机制时,它不会获取文件的最新版本,但我知道它确实会获取文件,因为我将其设置为首先删除文件(仅用于测试目的)当我检查时,文件就在那里。
而且还是要到第二天左右才下载最新版本!
这是服务器端缓存吗? Python/requests 是否有我必须清除的网络缓存才能获取最新版本的文件?
我的代码如下:
import requests, os
os.remove("bglug.py")
url = "https://raw.githubusercontent.com/TheTechRobo/bglugwatch-cleanslate/master/bglug.py"
r = requests.get(url, stream=True)
with open("bglug.py", "wb") as Writefile:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
Writefile.write(chunk)
其他人有同样的问题吗?谢谢!
【问题讨论】:
-
我们如何验证/知道文件内容何时发生了变化?
-
为什么你没有 git,而不是抓取 github?
-
@ChrisDoyle 这只是在测试运行期间,所以我只使用
cat。 -
@garglblarg 我使用的是 git,但是由于 git 存储文件的方式,文件大小变得越来越大。
-
@TheTechRobo36414519 看起来这只是 GitHub 如何处理原始文件的一部分。 raw.githubusercontent.com 上的数据需要时间来更新以匹配 github.com 上的文件。我自己进行了一些测试并弄清楚了这一点。基本上,您无法在代码中更改任何内容以使这种“缓存”消失。这不是 Python 或
requests的一部分。
标签: python python-3.x http download python-requests