我无法弄清楚为什么我无法通过nokogiri正确解析关键字。在下面的示例中,我有一个href链接文本功能正常工作但无法弄清楚如何提取关键字。
这是我到目前为止的代码:
.....
doc = Nokogiri::HTML(open("http://www.cnn.com"))
doc.xpath('//a/@href').each do |node|
#doc.xpath("//meta[@name='Keywords']").each do |node|
puts node.text
...
这成功地呈现了页面中的所有href文本,但是当我尝试将其用于关键字时,它没有显示任何内容。我尝试了几种不同的运气而没有运气。我假设节点之后的“.text”标注错误,但我不确定。
我很抱歉这段代码有多粗糙,我正在尽力在这里学习。
答案 0 :(得分:7)
你是对的,问题是text
。 text
返回开始标记和结束标记之间的文本。由于元标记为空,因此会为您提供空字符串。您需要“content”属性的值。
doc.xpath("//meta[@name='Keywords']/@content").each do |attr|
puts attr.value
end
由于您知道只有一个名为“keywords”的元标记,您实际上并不需要遍历结果,但可以像这样直接获取第一个项目:
puts doc.xpath("//meta[@name='Keywords']/@content").first.value
但请注意,如果没有名称为“content”的元标记,则会导致错误,因此第一个选项可能更合适。