使用 Python 个请求下载 .zip 文件并存储在文件夹中

Downloading .zip file and storing in a folder using Python requests

免责声明:我谦虚地请求不要将此问题标记为重复问题,我确实知道已经在 SO 上回答了其他几个类似的问题,但它们不适用于我的特定情况,我希望找出答案为什么。

我有一个私有 URL,当您在浏览器中搜索时,会提示用户保存一个 .zip 文件(显示 window,打开文件或保存文件)。

目前正在使用 Python 请求转到 URL 并将 .zip 下载到我想要的位置。

我不想提取 .zip 文件。我只想将它保存在特定位置。

我对此进行了相当广泛的搜索,但是 none 上的答案似乎解决了我的问题。

到目前为止,这是我的代码。现在确实发生了 GET 请求,并且确实存储了一个 .zip 文件。但出于某种原因,它比应有的大得多(我的意思是多出 100KB)。我不明白。我感觉跟chunk size有关系。

r = requests.get(URL, verify=False, cookies= coks)
with open(saved_path, 'wb') as fd:
 for chunk in r.iter_content(chunk_size=256):
            fd.write(chunk)

fd.write(r.content)

fd.write(r.text)

也不行。 在其他一些答案中有使用 urllib 的建议,但我不知道如何在其中指定多个 cookie 值和 SSL verify = false。 我更喜欢请求中的解决方案。但如果在请求中不可能,请帮助我使用 urllib

解决方案

请协助,提前致谢。

这是一个简单有效的解决方案:

import requests

URL = "https://some.url/output.zip"

r = requests.get(URL)
with open("output.zip", "wb") as fd:
    fd.write(r.content)

更清洁的版本(使用 pathlib):

import requests
import pathlib

URL = "https://some.url/output.zip"

downloaded_file = pathlib.Path.cwd() / "output.zip"

downloaded_file.write_bytes(requests.get(URL).content)