在我的ubuntu 10.04
主机上,我在Ruby脚本中使用了Nokogiri。
doc = Nokogiri::HTML(open("http://www.google.com.hk"))
工作正常,我收到数据。
在运行CentOS 5的产品主机上,它失败了。没有错误,它只返回一行数据。
#<Nokogiri::HTML::Document:0x43a5332 name="document" children=[#<Nokogiri::XML::DTD:0x43a5094 name="html">]>
#<Nokogiri::XML::DTD:0x43a5094 name="html">
中的数据在哪里?
答案 0 :(得分:1)
您的代码可能隐藏了您的错误。尝试从解析数据中分割出您的数据请求,这样您就可以看到Nokogiri看到的内容:
body = open("http://www.google.com.hk").read
puts body
doc = Nokogiri::HTML(body)
答案 1 :(得分:0)
Nokogiri使用libxml2来完成大部分繁重的工作。您的生产环境中可能安装了错误的libxml2。安装一个干净的,更新版本的libxml2,然后重新安装Nokogiri(确保它使用您的新安装)。
有关详情,请参阅 "What to do if libxml2 is being a jerk" 。