2015-05-19 71 views
0

我正在填寫一個表格並提交它。 這應該會觸發文件的下載。Rails scraping - submitting a form

但是,當我嘗試保存下載的輸出時,我得到頁面的源代碼而不是文件。

我的代碼是:

mechanize = Mechanize.new 
mechanize.pluggable_parser.default = Mechanize::Download 

page = mechanize.get('http://page.com/') 

form = page.forms.first 
form.radiobuttons_with(name: 'presence')[0].check 
form.source = "btce" 
form.label = "BTC/USD" 

mechanize.get_file(form.submit).save!('page.csv') 

我如何保存它下載的文件,當我提交表單?

回答

0

提交表單後文件是否會自動開始下載? 提交表單可能會返回一個新頁面,也可以加載新的腳本/樣式表。這可能解釋了爲什麼你的文件包含源代碼,因爲這是你下載的內容。 (如果您下載網頁,機械化不會引發錯誤)

例如,我使用Mechanize填寫Google的搜索表單並提交,並將結果保存到google_search.csv。新文件包含頁面源代碼以及javascript,mySQL和樣式表的混合。

您可以使用Firebug深入瞭解網頁的源代碼,並確定您提交表單時發生了什麼,這可能是一個被調用的鏈接,但您並未意識到。