使用Nokogiri我无法在文档中找到某些节点

时间:2013-12-24 13:57:23

标签: ruby-on-rails ruby nokogiri

尝试在此页面上搜索文档ysr-bio-data(“高度”值)时http://sports.yahoo.com/footballrecruiting/football/recruiting/player-Jonathan-Allen-125805

节点为零。这是因为在此部分填充之前nokogiri正在获取页面吗?或者是nokogiri对象没有将整个页面存储到它的对象中? 下面是我试图检索数据的一些示例代码。谢谢!

doc = Nokogiri::HTML(open('http://sports.yahoo.com/footballrecruiting/football/recruiting/player-Jonathan-Allen-125805'))

doc.css('ul#ysr-bio-data')

如果我需要提供任何其他信息,请告诉我。谢谢!

编辑:修正了错误的语法。

2 个答案:

答案 0 :(得分:1)

抱歉发布,但是有一些javascript需要在页面上运行才能填写这些单元格。

你可以这样做..让javascript在网络浏览器中运行..

require 'nokogiri' 
require 'watir-webdriver' #http://watir.com/

$browser = Watir::Browser.start "http://sports.yahoo.com/footballrecruiting/football/recruiting/player-Jonathan-Allen-125805"

doc = Nokogiri::HTML.parse($browser.html)

doc.css("ul#ysr-bio-data").text
=>  "Ht:6'3\"Wt:263 lbs40:4.5 secsBench Max:280Class:2013 (High School)\t"

我们基本上用watir取代open-uri。

希望这会有所帮助。

答案 1 :(得分:0)

我在stackoverflow上发现了另一个问题,它提供了解决我的问题的方法。

HTML is read before fully loaded using open-uri and nokogiri