尝试在此页面上搜索文档以查找 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')
如果我需要提供任何其他信息,请告诉我。谢谢!
编辑:修复了不正确的语法。
最佳答案
抱歉,伙计,但是需要在页面上运行 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。
希望这对您有所帮助。
关于ruby-on-rails - 使用 Nokogiri 我无法在文档中找到某些节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762217/