使用Python请求模块下载二进制文件

时间:2016-12-05 13:11:12

标签: python curl python-requests urllib2

我需要从外部源下载文件,我使用基本身份验证登录到URL

import requests
response = requests.get('<external url', auth=('<username>', '<password>'))
data = response.json()
html = data['list'][0]['attachments'][0]['url']
print (html)
data = requests.get('<API URL to download the attachment>', auth=('<username>', '<password>'), stream=True)
print (data.content) 

我的输出低于输出

<url to download the binary data> 
\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xcb\x00\x00\x1e\x00\x1e\x00\xbe\x07\x00\x00.\xcf\x05\x00\x00\x00'

我希望URL能够在同一会话中下载word文档。

1 个答案:

答案 0 :(得分:1)

工作解决方案

import requests
import shutil

response = requests.get('<url>', auth=('<username>', '<password>'))
data = response.json()
html = data['list'][0]['attachments'][0]['url']
print (html)
data = requests.get('<url>', auth=('<username>', '<password>'), stream=True)
with open("C:/myfile.docx", 'wb') as f:
    data.raw.decode_content = True
    shutil.copyfileobj(data.raw, f) 

我可以按原样下载文件。