在python请求.get调用中添加time-cond标志?

mbzjlibv  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(103)

我正在尝试使用pythonrequest包将--time-cond标志添加到GET调用中。我想在下载之前检查文件是否早于Jan 12 2022。
我想转换 * cURL * 命令:

curl -z "Jan 12, 2022" https://registry.verra.org/mymodule/ProjectDoc/Project_ViewFile.asp?FileID=11032&IDKEY=dkjalskjf098234kj28098sfkjlf098098kl32lasjdflkj909j15213128

[Note在curl-z中是--time-cond简写]
变成了这样

shapefile = requests.get('https://registry.verra.org/mymodule/ProjectDoc/Project_ViewFile.asp?FileID=11032&IDKEY=dkjalskjf098234kj28098sfkjlf098098kl32lasjdflkj909j15213128',
                         params = {`time-cond`:"Jan 12 2022"})

即仅获取自1月12日以来修改的文件
我不确定文件中提到这一点的地方。
https://requests.readthedocs.io/en/latest/api/
我所尝试的...

shapefile = requests.get('https://registry.verra.org/mymodule/ProjectDoc/Project_ViewFile.asp?FileID=11032&IDKEY=dkjalskjf098234kj28098sfkjlf098098kl32lasjdflkj909j15213128',
params = {`time-cond`:"Jan 12 2022"})

没有错误,但是将截止日期更改为未来和过去的宽值显示没有更改。请求似乎只是忽略了无法识别的参数
在第一个示例https://requests.readthedocs.io/en/latest/api/中,尝试了我从文档中解释的params = {name:value

ndasle7k

ndasle7k1#

“time-cond”只是一个CURL标志的名称,它在HTTP或requests包中没有任何意义。
要理解它的作用,你需要查看CURL生成的请求,如果你这样做,你会发现它创建了If-Modified-SinceIf-Unmodified-Since头,所以要使用requests包生成等价的请求,你需要添加适当的头。
您可以使用headers参数(不是params,它控制查询参数)来完成此操作。

import datetime
requests.get(url, headers = {
        "If-Unmodified-Since": datetime.datetime(2022, 1, 12)
})

相关问题