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

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
有帮助吗?

解决方案

我已经解决了!当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帽子上这一个! :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top