使用python中的请求模块从URL下载zip文件

2024-09-30 06:34:04 发布

您现在位置:Python中文网/ 问答频道 /正文

当我访问这个website时,我的浏览器会打开一个框来下载zip文件

我正试图通过python脚本下载zip文件(我是一个编程高手)。我想在将来自动下载一批类似的链接,但我现在只测试一个链接。这是我的密码:

import requests

url = 'https://sigef.incra.gov.br/geo/exportar/vertice/shp/454698fd-6dfa-49a1-8096-bd9bb57b62ca'
r = requests.get(url, verify=False, allow_redirects=True)

open('verticeshp454698fd-6dfa-49a1-8096-bd9bb57b62ca.zip', 'wb').write(r.content)

作为输出,我得到了一个损坏的zip文件,而不是我想要的。我在命令提示符中还收到以下消息:

C:\Users\joaop\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py:979: InsecureRequestWarning: Unverified HTTPS request is being made to host 'sigef.incra.gov.br'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  warnings.warn(

我在这里遗漏了什么步骤? 提前感谢你的帮助


Tags: 文件httpsbrurlis链接websitezip
1条回答
网友
1楼 · 发布于 2024-09-30 06:34:04

我通过在url的末尾添加/来实现它

import requests

# the `/` at the end is important
url = 'https://sigef.incra.gov.br/geo/exportar/vertice/shp/454698fd-6dfa-49a1-8096-bd9bb57b62ca/'

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2866.71 Safari/537.36", 
  }

r = requests.get(url, headers=headers, verify=False, allow_redirects=True)

# get the filename from the headers `454698fd-6dfa-49a1-8096-bd9bb57b62ca_vertice.zip`
filename = r.headers['Content-Disposition'].split("filename=")[-1]

with open(filename, 'wb') as f:
  f.write(r.content)

在行动中看到它here

相关问题 更多 >

    热门问题