您可以使用:
page.search('meta[@name="DC.creator"]')[1][:content]
at
等价于search(...).first
使用相同的选择器进行搜索并抓取找到的第二个元素,只要确实有两个匹配的标签就可以工作。如果没有,你会得到一个异常,因为你不能获取一个 nil 值的索引。
而且,作为一个仅供参考,Mechanize 在内部使用Nokogiri来处理其 HTML 解析和操作。Nokogiri 支持 CSS 和 XPath 选择器,因此您可以使用任何一种更容易找到您想要的标签或元素的选择器。我倾向于 CSS 以提高可读性,但两者都使用。有关搜索的更多信息,请参阅 Nokogiri 教程。
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<meta name='DC.creator' scheme='inventor' content='Chen Yonghong' />
<meta name='DC.creator' scheme='inventor' content='Chen Yuan' />
EOT
doc.search('meta[@name="DC.creator"]')[1][:content]
=> "Chen Yuan"