尝试在此页面上搜索文档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')
如果我需要提供任何其他信息,请告诉我。谢谢!
编辑:修正了错误的语法。
答案 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