使用 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)
免责声明:我谦虚地请求不要将此问题标记为重复问题,我确实知道已经在 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)