所以我使用Mechanize来获取页面的表单列表。表单标识可能因网站而异,因此我需要更稳定的内容,例如选择器。
有没有办法可以使用简单的CSS选择器从Mechanize提供的表单列表中选择正确的表单?
答案 0 :(得分:0)
是。 Mechanize返回的页面对象是Nokogiri文档,因此您可以使用Nokogiri的所有方法在DOM中查找节点。
search
和at
是通用方法,都采用CSS或XPath选择器。 at
相当于search('some selector').first
。我绝大多数时候都需要使用这两个节点来寻找节点。 css
和xpath
也是特定于选择器类型的,at
等同于at_css
和at_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中获取特定表单。
答案 1 :(得分:0)
您可以使用parfor
方法将表单与form_node
元素匹配:
<form>