通过 CSS 选择器从机械化结果中选择正确的表单



所以我使用Mechanize来获取页面的表单列表。表单标识可能因网站而异,因此我需要更稳定的东西,例如选择器。

有没有办法使用简单的 CSS 选择器从 Mechanize 提供的表单列表中选择正确的表单?

是的。Mechanize 返回的页面对象是一个 Nokogiri 文档,因此您可以使用 Nokogiri 的所有方法来查找 DOM 中的节点。

searchat 是泛型方法,它们都采用 CSS 或 XPath 选择器。 at相当于search('some selector').first。我在绝大多数情况下使用这两个节点来查找节点。还有特定于选择器类型的cssxpath,它们at等价物为 at_cssat_xpath

请考虑以下代码:

require 'mechanize'
agent = Mechanize.new
page = agent.get('http://www.example.net')
page.class # => Mechanize::Page
page.at('title').class # => Nokogiri::XML::Element
page.at('title').text # => "Example Domain"

此示例获取页面<title>但您可以轻松地从正在使用的 DOM 中插入如何从中获取特定表单。

可以使用

form_node 方法将表单与<form>元素匹配:

form = page.forms.find{|f| f.form_node == page.at('[name=f]')}

相关内容

  • 没有找到相关文章

最新更新