Ruby on rails 无法使用Nokogiri刮页

Ruby on rails 无法使用Nokogiri刮页,ruby-on-rails,ruby,nokogiri,screen-scraping,Ruby On Rails,Ruby,Nokogiri,Screen Scraping,我正在尝试使用Nokogiri刮取此页面: 目标是此页面中的视频信息(标题、href等) HTML是: <div class="pack pack_album2" data-stat-role="ck" data-stat-href="http://www.tudou.com/programs/view/e3jLsLPGct0/"></div> 但是,返回的结果表明.pack是nil类 事实上,我尝试了将doc.css(“.page container”).to_,。p

我正在尝试使用Nokogiri刮取此页面:

目标是此页面中的视频信息(标题、href等)

HTML是:

<div class="pack pack_album2" data-stat-role="ck" data-stat-href="http://www.tudou.com/programs/view/e3jLsLPGct0/"></div>
但是,返回的结果表明
.pack
是nil类

事实上,我尝试了
将doc.css(“.page container”).to_
。page container
.pack
的父div。返回结果显示内部没有
.pack


如何获取
.pack
的内容?

网站使用Ajax加载内容

您可以在中看到Ajax调用和处理HTML内容

复制并查找“打包相册2”。
使用Nokogiri无法获取Ajax内容。

您需要加载JavaScript。如果您喜欢使用JavaScript,我建议您使用Phantomjs。如果Ruby更适合您,您可以使用Watir:

require 'watir-webdriver'
require 'nokogiri'

$browser = Watir::Browser.start "http://www.tudou.com/home/_48712163/item"

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

video_info = $page_html.css("#xpath")
您可以使用headless gem来运行此headless,具体取决于您拥有的操作系统类型

require 'watir-webdriver'
require 'nokogiri'
require 'headless'

headless = Headless.new

headless.start 
$browser = Watir::Browser.start "http://www.tudou.com/home/_48712163/item"

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

video_info = $page_html.css("#xpath")

你可以在Ruby中使用PhantomJS:看和。我知道你可以,我只是没有任何示例代码来使用它。不太需要使用PhantomJS。看起来很酷。
require 'watir-webdriver'
require 'nokogiri'
require 'headless'

headless = Headless.new

headless.start 
$browser = Watir::Browser.start "http://www.tudou.com/home/_48712163/item"

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

video_info = $page_html.css("#xpath")