Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Nokogiri的反应不同_Ruby On Rails_Ruby_Nokogiri_Mechanize - Fatal编程技术网

Ruby on rails Nokogiri的反应不同

Ruby on rails Nokogiri的反应不同,ruby-on-rails,ruby,nokogiri,mechanize,Ruby On Rails,Ruby,Nokogiri,Mechanize,是否有人对Nokogiri在两台服务器、暂存服务器和生产服务器之间的行为有异议 在登台时,它使用Nokogiri 1.4.2和Mechanize 1.0.0正确地获取并返回页面 在生产环境中,它返回一组小得多的HTML,看起来像是使用Nokogiri 1.4.2和Mechanize 1.0.0生成的一条固定消息 我通过在IRB中运行它发现了这一点 任何线索都会有帮助。可能不是nokogiri,而是您正在使用的HTTP/socket库。您所说的“固定消息”是什么意思?可能没有帮助,但我会仔细检查两

是否有人对Nokogiri在两台服务器、暂存服务器和生产服务器之间的行为有异议

在登台时,它使用Nokogiri 1.4.2和Mechanize 1.0.0正确地获取并返回页面

在生产环境中,它返回一组小得多的HTML,看起来像是使用Nokogiri 1.4.2和Mechanize 1.0.0生成的一条固定消息

我通过在IRB中运行它发现了这一点


任何线索都会有帮助。

可能不是nokogiri,而是您正在使用的HTTP/socket库。您所说的“固定消息”是什么意思?可能没有帮助,但我会仔细检查两台服务器上的libxml版本。此外,是否有任何代理/防火墙/等。。在生产和您尝试访问的站点之间?没有代理/防火墙。它可能是libxml版本。我现在正在检查。我原本以为这是一封“封信”。但现在我想起来了,它更像是一个实际html的更短版本,它实际上有一个html的截取版本返回给了我。可能是生产服务器TCP筛选器上的包限制?重要的是要了解Nokogiri在连接时不会“获取”任何内容。Mechanize、OpenURI或类似的东西负责从服务器实际获取内容,然后将内容传递给Nokogiri进行解析。Nokogiri只知道字符串或IO流。在第二种情况下,它只对它们执行
读取
,因此不主动处理连接。了解这一点是确定问题所在的第一步;如果一个系统没有发送与另一个系统相同的数据,那就是该系统,而不是Nokogiri。