4

我正在使用 urllib2 来(尝试)从网站下载文件。该文件只能在指定某些表单字段后才能下载。我可以毫无问题地创建请求并获得响应,如下所示:

req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)

当我查看这样的响应标头时print response.info()['Content-Disposition'],我看到了那里的文件,即它打印出类似attachment;filename=myfile.txt

但是我如何实际下载附件?如果我这样做,response.read()我只会在 url 处得到一个包含页面 HTML 的字符串。关键是 url 不是一个文件,它是一个带有“附件”的网页,我正在尝试使用 urllib2 下载该附件。我相信附件是动态生成的,所以它不只是坐在服务器上。

4

1 回答 1

2

问题是我没有发送所有必要的标题。特别是,在请求标头中发送正确的 cookie 非常重要。我做了以下事情:

  1. 打开 Chromium(或 Chrome)并按 Ctrl+Shift+I 打开开发者工具。
  2. 点击“网络”
  3. 访问要下载文件的页面。
  4. 单击开发人员工具中新创建的条目,然后单击 Headers。这就是我获得有关我需要发送的标题的所有信息的地方。
于 2012-12-08T03:02:55.740 回答