我发现很多人都是用 nokogiri。
各位知道为啥 Nokogiri 官网会被和谐吗?
说句欠揍的话,其实我更喜欢Python
的http://www.crummy.com/software/BeautifulSoup/
Nokogiri 的文档太简陋了,而且 search 不喜欢,叫 find 该多好
#8 楼 @ywencn js 这东西根本不用看啊,直接 firebug 监控数据包,然后模拟发包即可。
#7 楼 @hooopo 我以前和同事比过,后来发现他用Beautiful Soup
写的代码的确要漂亮些,可能也和我的能力相关吧。
Nokogiri 的用法我推荐三篇非常给力的文章: http://ruby.bastardsbook.com/chapters/html-parsing/ http://ruby.bastardsbook.com/chapters/web-inspecting-traffic/ http://ruby.bastardsbook.com/chapters/web-crawling/
想起几年前,曾经天天要跟 XML 和基于 Soap 的 WebServices 打交道,那个年代 nokogiri 还没有横空出世,手上只有两个选择:hpricot 和 libxml-ruby
libxml-ruby 是对 GNOME Libxml2 XML toolkit
的 Ruby 封装,速度一流,但是 API 语法晦涩,个人很不喜欢用,而且安装的时候需要你先装个 libxml2-dev 的库。
hpricot 是纯 ruby 实现,内部算法基于正则,解析速度也还行,当然没有基于 C 的 libxml-ruby 快,关键是 API 语法非常简洁清晰,所以在性能不是问题的情况下我首选 hpricot。
后来 nokogiri 出来了,我记得当时特意研究了一下 nokogiri 的实现,nokogiri 本质上仍然基于 Gnome 的 Libxml2,但是在 API 设计和语法上充分吸收了 Hpricot 和 XML Builder 的优点,当时甚至还能从源码中找到 XML Builder 和 Hpricot 的 namespace,不过貌似现在已经被移除了。所以本质上说,nokogiri 是基于 C 的并且兼容 Hpricot 的一套优秀的 XML 库,所以除非部署环境不允许,不能允许安装独立第三方库 libxml2-dev 的情况下,首选 Nokogiri。
nokogiri 解析 xml 有 bug 这里的 xml http://www.cnblogs.com/WilsonWu/archive/2008/04/27/1173555.html