【问题标题】:Response is blank while downloading a the pdf form amazonaws下载 pdf 表单 amazonaws 时响应为空白
【发布时间】:2016-06-20 09:48:44
【问题描述】:

我正在尝试使用 python 2.7 请求从 link 下载 pdf 文件:

https://ap-prod-ddc-stack-content.s3.amazonaws.com/devtestbed-prod-01/ABC000128CEC2.pdf?AWSAccessKeyId=AKIAJZ2VLLVH5FAWOGYA&Expires=1466500635&Signature=itUWZwiOiWwH%2BPihTYMjoq1URFw%3D

import requests
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36'
    }
download_url="https://ap-prod-ddc-stack-content.s3.amazonaws.com/devtestbed-prod-01/ABC000128CEC2.pdf?AWSAccessKeyId=AKIAJZ2VLLVH5FAWOGYA&Expires=1466500635&Signature=itUWZwiOiWwH%2BPihTYMjoq1URFw%3D"
response=  requests.get(download_url,headers=headers )
print response
print  "##################"
print response.content

GET 请求的响应中,我得到代码 200 但内容为空白。

我的代码中缺少什么。

【问题讨论】:

  • 我无法重现这个。该代码对我来说很好。
  • response.content 的内容是什么
  • pdf 的二进制内容。 content 用于二进制文件。 text 用于文本文件。

标签: python amazon-web-services http-headers python-requests request-headers


【解决方案1】:

接下来您需要做的就是将内容保存为字节(使用 'wb' 标志)而不是字符串,因为内容是字节码。

将此添加到代码的末尾:

with open('PATH\downloaded.pdf', 'wb') as file:
    file.write(response.content)

注意:我使用了 python3.4,它对我有用。

【讨论】:

  • 谢谢,但你能告诉我你怎么知道内容是字节码
  • 不客气。我有 2 个指示符:首先,当您打印内容时,它会打印“b....”,而“b”表示该字符串是字节字符串。二、这里有更多信息:docs.python-requests.org/en/master/user/quickstart/…
猜你喜欢
  • 2016-03-29
  • 2015-03-07
  • 2020-08-07
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
相关资源
最近更新 更多