无法使用 python 从 URL 下载文件

Unable to download file from URL using python

我正在尝试从 URL:

下载文件

https://www.cmegroup.com/content/dam/cmegroup/notices/clearing/2020/08/Chadv20-239.pdf

我尝试使用 python 请求库,但请求刚刚超时。我尝试将浏览器中的 'User-Agent' 指定为 header,但它仍然只是超时,包括当我将浏览器中的每个 header 复制到我的 python 脚本时.我尝试设置 allow_redirects=True,这没有帮助。我也试过 wget 和 curl,除了实际打开浏览器、访问 URL 和下载文件之外,一切都失败了。

我想知道我的浏览器中的请求与 python 请求之间的实际区别是什么,我设置 headers 以匹配我浏览器中的请求 - 有什么办法可以可以使用 python 下载此文件吗?

代码片段:

import requests
requests.get("https://www.cmegroup.com/content/dam/cmegroup/notices/clearing/2020/08/Chadv20-239.pdf") # hangs

如果没有一些代码片段,很难理解可能出了什么问题。文件是如何下载的?您是否正在获取原始响应内容并将其另存为 pdf?官方文档(https://docs.python-requests.org/en/latest/user/quickstart/#raw-response-content) 建议使用基于块的方法来保存streamed/raw 内容。您尝试过这种方法吗?

检查这个,它对我有用。

import requests
headers = {
    "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'}
response = requests.get(
    "https://www.cmegroup.com/content/dam/cmegroup/notices/clearing/2020/08/Chadv20-239.pdf", headers=headers)
pdf = open("Chadv20-239.pdf", 'wb')
pdf.write(response.content)
pdf.close()