ruby - 有 2 次提交的 Mechanize 帖子

标签 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' 没有填充到表单中。
我直接从网站上获取了这些名称。

最佳答案

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

关于ruby - 有 2 次提交的 Mechanize 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960967/

相关文章:

ruby-on-rails - simpleform 和带有 iso_codes 的country_select

ruby - 如何更改 ruby 二维数组中的一个单元格?

PHP $_POST 发布隐藏字段时为空

php - 从 $_POST 数组多次 INSERT INTO MySQL

iOS - 使用 RestKit 发布 : callback functions not called - (mapping data used)

Ruby Mechanize 检索 header

ruby-on-rails - Rails 3.0 中的 Arel 究竟是什么?

ruby - 有没有一种简单的方法可以让 Mechanize 获取网页的所有组件?

ruby - Mechanize 和 NTLM 身份验证

Python自动填充 Mechanize