为什么我使用Nokogiri会丢失数据



在我的ubuntu 10.04主机上,我在Ruby脚本中使用Nokogiri。

doc = Nokogiri::HTML(open("http://www.google.com.hk"))

这很好,我收到数据。

在我的产品主机上运行的是centos5,它失败了。没有错误,它只返回一行数据。

#<Nokogiri::HTML::Document:0x43a5332 name="document" children=[#<Nokogiri::XML::DTD:0x43a5094 name="html">]>

#<Nokogiri::XML::DTD:0x43a5094 name="html">中的数据在哪里?

您的代码可能会向您隐藏错误。试着把你的数据请求从数据解析中分离出来,这样你就可以看到Nokogiri看到的:

body = open("http://www.google.com.hk").read
puts body
doc = Nokogiri::HTML(body)

Nokogiri使用libxml2来完成大部分繁重的工作。很可能您在生产环境中安装了一个糟糕的libxml2。安装一个干净的更新版本的libxml2,然后重新安装Nokogiri(确保它使用您的新安装)。

有关更多信息,请阅读"如果libxml2是混蛋该怎么办"

相关内容

  • 没有找到相关文章

最新更新