使用奇怪的 https 形式 RoR 进行机械化
我正在使用 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
I'm using RoR trying to search a simple form at my college using mechanize. The code works fine for searching google, but returns the search form in the results? I'm really confused. Any advice? Thanks!
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我已经解决了!当调用
form.submit
时,它假设form.buttons
中的最后一个按钮是要使用的按钮。 form.buttons 中的最后一个按钮用于高级表单,因此生成的页面对象是另一种表单,尽管是更全面的高级搜索表单。终于我们水落石出了! HTML 很糟糕,因此您需要为此戴上 XPath 帽子! :)
I've solved it! When
form.submit
is being called, it is assuming the last button inform.buttons
is the button to use. The last button inform.buttons
is for the advanced form, hence the resulting page object being another form, albeit the more comprehensive advanced search form.Finally we get to the bottom of it! The HTML is horrible, so you will need to put your XPath hat on for this one! :)