2012-12-07 53 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. 單擊開發人員工具中新創建的條目,然後單擊標題。這就是我所需要發送的標題的全部信息。