使用Ruby Mechanize解析格式错误的HTML

时间:2011-06-09 03:36:31

标签: ruby screen-scraping nokogiri mechanize

我对使用mechanize,甚至Ruby都很新。我正在使用它来浏览HTML格式错误的网站。特别是,我有一个页面,其中包含一个表单之外的复选框(尽管这样,服务器可以很好地处理请求)。

我想检查这些框并单击提交按钮(也在表单外)。但是,我无法使用Form.checkbox_with,因为我没有Form个对象,我只有Page。我可以在页面上找到page.search("//input[@name='silly-checkbox']")的复选框,但据我所知,我之后无法检查它(因为Nokogiri仅用于抓取而不跟踪状态)。如果不正确,请告诉我。

底线:当我的复选框不在表单中时,如何获取Mechanize::Form::Checkbox对象?

2 个答案:

答案 0 :(得分:0)

您可以使用普通的Nokogiri手动加载远程页面,然后修复标记(即在表单外部查找复选框并将其包装),并自行从固定的HTML代码构建Mechanize类。

答案 1 :(得分:0)

您可以通过删除和合并新字段来修改表单。

form.add_field!('gender', 'male')

rdoc here