【发布时间】:2016-12-05 13:11:12
【问题描述】:
我需要从外部源下载文件,我正在使用基本身份验证登录到 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 文档。
【问题讨论】:
-
所以听起来第一步很好(返回你想要的 url?)。您没有做的是从第二个响应中提取数据。 "data = requests.get('
', stream=True)" 应该类似于 "data = requests.get(' ', stream=True) 。文本” ?试试这个并编辑问题,如果它仍然不起作用 -
docs.python-requests.org/en/master/user/advanced/… 并且可能还会在第二个请求中传递
auth? -
我建议您重新阅读请求快速入门文档。要从返回的 Response 对象中获取 二进制 数据,您需要访问其
.content属性。 -
@PM 2Ring - 我根据您的 cmets 更新了代码,并且能够下载文件的内容。要求是按原样下载文档(在我的情况下,它是一个 docx 文件 - 所以具体来说,我需要下载 docx 文件而不进行任何编码或解码)
标签: python curl python-requests urllib2