我正在使用Nokogiri gem来解析网页文档。但是我正在尝试在使用AngularJS的网站上进行此操作(我相信),当我将其加载到Nokogiri时,它的格式不是我在浏览器中访问该页面时看到的格式。我怎样才能使它像我期望的那样加载,所以我可以通过css选择器解析它?
网址:http://www.ukathletics.com/sport/m-footbl/roster/#/2015/Players/table
代码
require 'open-uri'
require 'nokogiri'
require 'capybara-webkit'
require 'capybara/dsl'
require 'byebug'
require './ncaa_school_sites'
require './functions'
include Capybara::DSL
Capybara.current_driver = :webkit
Capybara::Webkit.configure do |config|
config.block_unknown_urls
NcaaSchoolSite.where(code: 'KYUN').order(:code).each do |school|
config.allow_url("*#{school.website_url}")
end
end
visit(school.roster_url)
doc = Nokogiri::HTML.parse(body)
byebug
roster_table = doc.css("div.player_table table")
headers = retrieve_headers(roster_table.css("thead tr"))
process_player_rows(roster_table, headers, school,"tbody td",1)
答案 0 :(得分:0)
我很困惑为什么你要使用Capybara然后尝试用Nokogiri解析页面?单独使用Capybara,您可以执行类似
之类的操作roster_table = page.find(:css, 'div.player_table table')
headers = roster_table.all(:css, 'thead tr')
等...