Ruby 编程 · 2014/07/31 0

Ruby 的 lxml 类似库 nokogiri 的使用

用过 Python 的 lxml 感觉还不错, 他实现了 lxml 对html的解析, 最近在看 Ruby, 搜了一下就找到了, nokogiri 类似的 python 下的 lxml 的库, 以下就介绍下, 改如何使用他:

1. 安装 nokogiri
gem install nokogiri

如果你想使用系统的库来安装, 可以使用如下指令:
gem install nokogiri -- --use-system-libraries
因为上述安装各种折腾, 主要本人对Ruby不熟, 所以还是采用了第一种方式安装.

2. 代码实例:

require 'net/http'
require 'nokogiri'
#html 获取
html = Net::HTTP.get('xwsoul.com', '/')
#转换成dom对象
dom = Nokogiri::HTML(html)
#dom的xpath的解析
dom.css('meta').each { |meta|
  if !meta["name"].nil?
      puts "#{meta["name"]}: #{meta["content"]}"
  end
}

nokogiri 对xpath 的支持应该还是比较全面的, 本人自己有测试过其他 xpath 的选择器, 如class, 均可正常工作. 其他性能有待进一步验证.