跳转到主要内容

使用HTTP条件获取数据的命令行工具

项目描述

条件获取

PyPI Changelog Tests License

使用HTTP条件获取数据的命令行工具。

安装

pip install conditional-get

使用

第一次运行此命令时,它将下载文件并将ETag(如果返回)存储在名为etags.json的文件中。

第二次运行此命令针对相同的URL时,它将使用该ETag,可能产生一个304 Not Modified响应,从而通过不重新下载文件来节省带宽。

# First run - will fetch the file
conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png
# Second run - will only fetch the file if it has changed
conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png

文件名将根据URL派生。您可以使用-o选项自定义文件名

conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png -o til.png

默认情况下,检索到的URL的ETags将存储在当前目录中的etags.json文件中。您可以使用--etags otherfile.json将文件存储在其他位置

conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png --etags my-etags.json

使用-v选项获取显示正在发生什么的调试输出

$ conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png -v
Response status code: 200
[####################################]  100%

$ ls
Simon_Willison__TIL.png	etags.json

$ cat etags.json 
{
    "https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png": "\"d65b78782dfa93213c99099e0e2181d8\""
}

$ conditional-get https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png -v
Existing ETag: "d65b78782dfa93213c99099e0e2181d8"
Response status code: 304

存储在etags.json中的ETag使用的键默认为URL。您可以使用--key选项指定自定义键

conditional-get --key til https://static.simonwillison.net/static/2020/Simon_Willison__TIL.png
cat etags.json
{
    "til": "\"d65b78782dfa93213c99099e0e2181d8\""
}

如果文件的URL发生变化,即使文件内容保持不变,这也很有用 - 例如,如果您正在从包含过期签名的URL下载文件。

项目详情


下载文件

下载您平台对应的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分布

conditional-get-0.3.tar.gz (7.5 kB 查看哈希值)

上传时间

构建分布

conditional_get-0.3-py3-none-any.whl (8.0 kB 查看哈希值)

上传时间 Python 3