我在页面上填写表格并提交。 这应该会触发下载文件。
但是,当我尝试保存下载的输出时,我得到的是页面的源代码而不是文件。
我的代码是:
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 :(得分:0)
提交表单后文件是否会自动开始下载?
提交表单可能会返回一个新页面,也可以加载新的脚本/样式表。这可能解释了为什么您的文件包含源代码,因为这就是您要下载的内容。 (如果您下载网页,Mechanize不会抛出错误)
例如,我使用Mechanize填写Google的搜索表单并提交,并将结果保存到google_search.csv
。新文件包含页面源代码以及javascript,mySQL和样式表的混合。
您可以使用Firebug挖掘页面的源代码,并查明提交表单时确切发生的情况,这可能是一个被调用的链接,但您并不知道。