如何使用Ruby和机械化方法解析格式错误的HTML

问题描述 投票:3回答:2

我对使用Mechanize甚至是Ruby还是相当陌生,我正在使用它们来导航HTML格式严重错误的网站。特别是,我有一个页面,该页面的复选框超出了服务器尽管可以正确处理请求的形式。

我想选中这些框,然后单击表单外部的“提交”按钮。但是,我不能使用Form.checkbox_with,因为我没有Form对象,而只有Page。我可以使用

找到页面上的复选框
page.search("//input[@name='silly-checkbox']")

但是据我所知,我以后无法检查它,因为Nokogiri仅用于抓取,并且不跟踪状态。如果不正确,请通知我。

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

ruby screen-scraping nokogiri mechanize
2个回答
1
投票

您可以使用Nokogiri手动加载远程页面,然后通过查找表单外部的复选框并包装它们来修复标记,并通过固定的HTML代码自行构造Mechanize类。


0
投票

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

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

rdoc here

© www.soinside.com 2019 - 2024. All rights reserved.