2011-06-13 60 views
1

我試圖自動下載從數據庫中生成的一堆csv文件,這些文件是基於表單上選中的複選框。該網站通過點擊「下載」按鈕生成csv文件。我使用Firebug找到了下載提示的URL(並根據複選框的選擇確定了它的更改方式),但我不確定如何使用它,因爲它是動態生成的,並且不包含文件路徑。一個例子是以下URL:通過http請求動態生成的文件的自動下載

https://www.quantcast.com/download/plannerCSV?&d0Id=10&sc=1&mr=10000

什麼是去這樣做的最佳方式?我查看了Python機械化模塊,並簡單地查看了pydermonkey,但在下載動態生成的文件時遇到了問題。我還發現了一些關於使用VBscript和Perl的other forums的建議 - 如果可能,我更喜歡使用Python,因爲我最熟悉它,但是如果另一種語言更合適,我將學習完成此任務所需的東西 - - 我只希望能有效地做到這一點!任何有關此主題的經驗/知識/見解的人的意見將不勝感激。

+2

如果你使用Perl,我會說使用機械化,所以我想象Python的(山寨)機械化應該工作了。即使文檔不足,您也可能想要堅持使用它。首先嚐試一些更簡單的方法,就像靜態網頁一樣。 – 2011-06-13 21:41:32

+1

[WWW :: Mechanize](http://p3rl.org/WWW::Mechanize)文檔,[mech-dump](http://p3rl.org/mech-dump)表單dumper – daxim 2011-06-13 21:45:22

+0

好,它的工作;謝謝!! :) – Jen 2011-06-15 16:28:27

回答

0

可能最簡單的方法是使用命令行工具wget。如果運行UNIX/Linux,它已經在那裏。如果您正在運行Windows,則可以從以下位置下載Win32版本:​​

您可以使用shell/batch腳本來爲您下載文件。

爲Windows

例子:

set id=10 
set sc=1 
set mr=10000 

set my_url=https://www.quantcast.com/download/plannerCSV?&d0Id=%id%&sc=%sc%&mr=%mr% 
set filename=planner.csv 

wget %my_url% --output-document=%filename% 

: 
: do stuff with file 
: 
+0

當我跑了,我得到以下內容: 'd0Id'不被識別爲內部或外部命令,可操作的程序或批處理文件「。嗯,你能解釋爲什麼會發生這種情況嗎? – Jen 2011-06-15 03:57:38

+0

好吧,我把URL放在引號中,但後來我得到了」Unknown/unsupported protocol「 - 是因爲URL不是csv格式的文件路徑嗎? – Jen 2011-06-15 14:39:11

相關問題