【发布时间】:2019-02-15 18:56:28
【问题描述】:
我正在尝试使用 Python 3 的 urllib 下载文件,但我得到了一些 html 垃圾而不是实际文件。但是,如果我使用浏览器,我可以下载文件就好了。一个最小的非工作示例:
import urllib.request
url = 'https://contrataciondelestado.es/wps/wcm/connect/PLACE_es/Site/area/docAccCmpnt?srv=cmpnt&cmpntname=GetDocumentsById&source=library&DocumentIdParam=ecd194a4-82e1-4fd2-8135-616622234f9b'
urllib.request.urlretrieve(url,'blah.pdf')
我还尝试了this thread 中的两个答案(创建用户代理 并使用requestsmodule)...但同样没有。
使用requests
import requests
url = 'https://contrataciondelestado.es/wps/wcm/connect/PLACE_es/Site/area/docAccCmpnt?srv=cmpnt&cmpntname=GetDocumentsById&source=library&DocumentIdParam=ecd194a4-82e1-4fd2-8135-616622234f9b'
r = requests.get(url, allow_redirects=True)
with open('test.pdf', 'wb') as f:
f.write(r.content)
print(r.is_redirect)
同样的废话,requests 模块说传递的 URL 不是 重定向。
我还尝试了更多“复杂”的东西,例如 download_file 建议的函数 here......还是老样子。
有什么线索吗?
干杯。
【问题讨论】:
-
试试这个stackoverflow.com/a/45773648/1302018然后你的代码
-
不适合我
标签: python python-3.x http