加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Nokogiri html解析问题

发布时间:2020-12-17 03:26:30 所属栏目:百科 来源:网络整理
导读:我无法弄清楚为什么我无法通过nokogiri正确解析关键字.在下面的示例中,我有一个href链接文本功能正常工作但无法弄清楚如何提取关键字. 这是我到目前为止的代码: ….. doc = Nokogiri::HTML(open("http://www.cnn.com"))doc.xpath('//a/@href').each do |nod
我无法弄清楚为什么我无法通过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”标注是错误的,但我不确定.

我对这段代码的粗略表示道歉,我正在尽力在这里学习.

解决方法

你是对的,问题是文字. 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”的元标记,则会导致错误,因此第一个选项可能更可取.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读