【问题标题】:Ruby Mechanize submit buttons not working correctlyRuby Mechanize 提交按钮无法正常工作
【发布时间】:2012-03-06 17:36:23
【问题描述】:

我一直在研究一个 Ruby 脚本,它将数据输入到搜索字段中,然后需要单击输入按钮。通过查看“pp”,我的数据正确输入到搜索字段中。我遇到的问题是单击“输入”按钮。正在发生的事情是它没有向前移动它只是刷新当前屏幕。当我通过 IE 手动访问相关网站时,输入搜索数据并在我的键盘上按 Enter,它不会滚动到搜索屏幕;我必须在 enter 上单击鼠标才能使其向前移动。如果我使用 Chrome 并使用键盘输入执行相同的任务,那么它会打开一个新选项卡。我如何以编程方式获得此进展?

这是我的代码:

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
page = agent.get('https://somewebsite.com')

check_form = page.form
check_form['ct100$MainContent$txtNumber'] = 'J520518'

pp page

page = agent.submit(check_form, check_form.buttons.first)

pp page

page.links.each do |link|
  puts link.text
end

这里是输出的片段:

...
<forms
#<Mechanize::Form
<name nil>
<method "POST">
<action "">
<fields
...
[field:0xb627a0 type: name:ct100$MainContent$txtNumber value: J520518]>
...
<buttons
[submit:0xb6d8ac type: submit name: ct100$MainContent$btnEnter value: Enter]
}>}>
...
<forms
#<Mechanize::Form
<name nil>
<method "POST">
<action "">
<fields
...
[field:0xb627a0 type: name:ct100$MainContent$txtNumber value: ]>
...
<buttons
[submit:0xb6d8ac type: submit name: ct100$MainContent$btnEnter value: Enter]

一如既往,非常感谢您的帮助!

【问题讨论】:

    标签: ruby mechanize


    【解决方案1】:

    好的,因为我使用的是 IE,所以我能够使用 watir 进行解析。然后我可以使用 nokogiri 来解析最后一页。最终,我在上面的代码中走上了正轨,但是 Mechanize 目前无法处理 JavaScript。由于 watir 是浏览器的驱动程序,而不是像它自己的浏览器一样,它能够处理 JavaScript。我希望这对遇到这个问题的人有所帮助。

    【讨论】:

      【解决方案2】:

      像这样的 Asp.net 网站对于抓取来说是一个挑战,因为所有内容都有 javascript 回调。您通常可以通过使用 selenium 或 node.js 之类的 js 感知环境来保持理智

      【讨论】:

      • 我从未使用过这两种产品。他们会允许我输入一个需要搜索每个行项目的文件吗?让我解释一下我在做什么。我有一个需要搜索约 30K 行数据的文件。对于每个项目,我都在结果中寻找特定的关键字。如果结果符合我的标准需要输出到文件中。我知道如何用 RUBY 做到这一点,但正如你所见,我对这个特定的网站有些头疼。如果我知道我可以获得雇主所需的最终文件,我并不反对学习新产品。干杯!
      • 我不确定我是否理解您在做什么,但我推荐 watir::webdriver,这是使用 ruby​​ 浏览此站点的最简单方法。
      • 谢谢...我要改用watir了!
      猜你喜欢
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2015-01-31
      • 1970-01-01
      • 2012-12-23
      • 2014-01-23
      相关资源
      最近更新 更多