用过 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, 均可正常工作. 其他性能有待进一步验证.