Ruby on rails 使用Nokogiri来刮取数据:“;未定义的方法'text'&引用;

Ruby on rails 使用Nokogiri来刮取数据:“;未定义的方法'text'&引用;,ruby-on-rails,nokogiri,Ruby On Rails,Nokogiri,我在Rails应用程序中使用Nokogiri从网站上获取信息,但我得到: NoMethodError: "undefined method `text' for nil:NilClass". 这是示例代码: require 'nokogiri' require 'open-uri' url = "https://btc-e.com/exchange/btc_usd/" doclink = Nokogiri::HTML(open(url)) doclink.at_css(".orderS

我在Rails应用程序中使用Nokogiri从网站上获取信息,但我得到:

NoMethodError: "undefined method `text' for nil:NilClass". 
这是示例代码:

require 'nokogiri'
require 'open-uri'  

url = "https://btc-e.com/exchange/btc_usd/"
doclink = Nokogiri::HTML(open(url))
doclink.at_css(".orderStats:nth-child(1) strong").text

我正在尝试拉在URL中列出的“最后的价格”。我使用“SelectorGadget”Chrome插件查找CSS描述。我还尝试使用
.orderStats strong
,但得到了相同的无方法错误。如何修复此问题?

您所指的页面使用JavaScript填充自身。由于Nokigiri不执行JS,因此Nokigiri获取的页面非常无用:

<html>
<head><title>loading</title></head>
<body>
<p>Please wait...</p>
<script>/* POPULATES THE PAGE */</script>
</body>
</html>

加载
请稍候

/*填充页面*/
一种解决方案是使用执行JS的刮板,例如水豚+幻影JS。下面有一篇文章介绍了如何:。谷歌获取更多信息