我在这里寻求一些帮助。我一直在使用Python中的请求来访问网站。我能够访问该网站并获得响应标题,但我不确定如何下载Content-disposition中包含的zip文件。我猜这不是一个函数请求可以处理或至少我似乎无法找到任何信息。如何获取文件并保存?
'Content-disposition': 'attachment;filename=MT0376_DealerPrice.zip'
答案 0 :(得分:1)
使用urllib
代替requests
因为它是一个更轻的库:
import urllib
req = urllib.request.Request(url, method='HEAD')
r = urllib.request.urlopen(req)
print(r.info().get_filename())
示例:
In[1]: urllib.request.urlopen(urllib.request.Request('https://httpbin.org/response-headers?content-disposition=%20attachment%3Bfilename%3D%22example.csv%22', method='HEAD')).info().get_filename()
Out[1]: 'example.csv'
答案 1 :(得分:0)
您要做的是访问response.content。如果内容确实包含文件,您可能希望添加更好的检查。
小示例摘录
response = requests.post(url, files={'name': 'filename.bin'}, timeout=60, stream=True)
if response.status_code == 200:
if response.headers.get('Content-Disposition'):
print("Got file in response")
print("Writing file to filename.bin")
open("filename.bin", 'wb').write(response.content)