0

我正在使用 RoR 尝试使用mechanize在我的大学中搜索一个简单的表格。该代码适用于搜索谷歌,但在结果中返回搜索表单?我真的很困惑。有什么建议吗?谢谢!

ruby script/console
require 'mechanize'
agent = WWW::Mechanize.new
agent.get("https://www.owens.edu/cgi-bin/class.pl/")
agent.page.forms
form = agent.page.forms.last
form.occ_subject = "chm"
form.submit
4

1 回答 1

0

我已经解决了!当form.submit被调用时,假设最后一个按钮form.buttons是要使用的按钮。最后一个按钮form.buttons用于高级表单,因此生成的页面对象是另一个表单,尽管它是更全面的高级搜索表单。

require 'mechanize'
agent = WWW::Mechanize.new
agent.get("https://www.owens.edu/cgi-bin/class.pl/")
agent.page.forms
form = agent.page.forms.last
form.occ_subject = "chm"
result = agent.submit(form, form.buttons.first)

result.parser.css('table.cs-table-settings tr.tbl-class-fill-b td font b').map { |v| v.text.strip }

=> ["Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", "Principles of Chemistry", …]

终于我们到了它的底部!HTML 太可怕了,所以您需要为此戴上 XPath 帽子!:)

于 2009-12-08T22:30:39.603 回答