通过2个提交机械化Post

时间:2012-08-14 21:23:54

标签: ruby post mechanize

我对Mechanize很新......而且我还在学习。

我想知道是否有人可以帮我解决这个问题。

我正在通过Firefox搞乱Web开发人员工具包以找出表单,但我在这方面遇到了一些麻烦。

我要发布的网站提交了2个提交按钮。整个页面主要是javascript和jquery代码,所以为了解决这个问题,我发现我需要将信息直接发布到页面上,就像这样......

 @page = Mechanize.new{|agent| agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2'} 
 @page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3')

页面上有多个按钮,显示为没有直接链接的图像文件:

   <input id="btn1" type="image" title="Search" src="images/img/common/btn.gif" name="button1">
   <input id="btn2" type="image" title="Search" src="images/img/common/btn.gif" name="button2">

当我从网站上提取表格时......我明白了......

ID='btn1', name = 'btn1', type ='image', 'value' = ''

我知道如果我有直接链接......我应该发布类似......

的内容
 @page.post("http://www.somepage.do/button2.html", 'name1' => '1','name2' => '2', 'name3' => '3')

但是由于大部分页面都是javascript,因此很难找到东西。

欢迎任何帮助或建议。提前谢谢。

编辑:

好的......我刚刚发现了一些事情......当我

@page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3')

由于某些奇怪的原因,'name1'和'name2'没有填入表格 我直接从网站上抓了这些名字。

1 个答案:

答案 0 :(得分:1)

由于您提到您使用的是Firefox,请安装HTTPFox插件并使用它来分析当您单击提交按钮时提交按钮发布到Web服务器的内容。这样,您可以通过使用值填充表单或者甚至向表单添加更多输入字段来轻松模仿Javascript正在执行的操作(如果javascript在提交之前添加任何额外字段)。我在网站上成功地多次使用这种技术,这些网站在提交时进行了大量的javascript表单处理。