Ruby on rails 无法使用Nokogiri刮页
我正在尝试使用Nokogiri刮取此页面: 目标是此页面中的视频信息(标题、href等) HTML是: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
<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")