2012-12-07 56 views
4

我正在使用urllib2(尝试)从网站下载文件。该文件只能在指定某些表单域后下载。我可以创建请求并得到响应,没有任何问题,像这样的:如何实际下载附件?

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

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

但我怎么实际上下载的附件?如果我做response.read()我只是得到一个字符串,其中包含网页的HTML在URL。重点是url不是文件,它是一个带有“附件”的网页,我试图用urllib2下载该附件。我相信附件是动态生成的,所以它不只是坐在服务器上。

+0

检查是否存在' jfs

+0

是的,我真的仔细检查了页面上的所有javascript。我没有发现页面加载时实际执行的任何相关内容。 – Pacopag

回答

2

问题是我没有发送所有必要的标题。尤其重要的是,我在请求标题中发送正确的Cookie。我做了以下:

  1. 打开铬(或铬),并按Ctrl + Shift +我打开开发人员工具。
  2. 单击“网络”
  3. 访问要下载文件的页面。
  4. 单击开发人员工具中新创建的条目,然后单击标题。这就是我所需要发送的标题的全部信息。