Nokogiri html解析问题
问题描述:
我无法弄清楚为什么我无法通过nokogiri正确解析关键字。在以下示例中,我的href链接文本功能正常工作,但无法弄清楚如何拉取关键字。Nokogiri html解析问题
这是代码我迄今:
.....
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
....
这使得成功在所有页面中的A HREF文字,但是当我尝试将它用于关键字时,它不显示任何内容。我已经尝试了几次这样的变化,但没有运气。我假设节点后的“.text”标注是错误的,但我不确定。
我很抱歉这段代码很粗糙,我正尽我最大努力在这里学习。
答
你是对的,问题是text
。 text
返回开始标记和结束标记之间的文本。由于元标签为空,因此会为您提供空字符串。您需要改为“content”属性的值。
doc.xpath("//meta[@name='Keywords']/@content").each do |attr|
puts attr.value
end
既然你知道,有将只有一个meta标记名称为“关键字”,你实际上并不需要通过循环的结果,但可直接采取的第一项是这样的:
puts doc.xpath("//meta[@name='Keywords']/@content").first.value
但是,请注意,如果没有名称为“content”的元标记,则会导致错误,因此第一个选项可能更可取。
请阅读“[mcve]”。证明问题的最小输入是多少?不要要求我们创造我们自己的。你必须帮助我们帮助你。通过这样做,你可以帮助那些在未来寻找类似解决方案的人,这就是Stack Overflow的原因。 – 2016-09-14 00:54:01