Css 如何在HTML表上刮取特定数据并从中生成数组输出?

Css 如何在HTML表上刮取特定数据并从中生成数组输出?,css,ruby,xpath,nokogiri,Css,Ruby,Xpath,Nokogiri,输出应为: require 'nokogiri' require 'open-uri' url = 'http://racingaustralia.horse/FreeFields/RaceProgram.aspx?Key=2016Feb13,VIC,Caulfield' html = open(url) doc = Nokogiri::HTML(html) ## get the: # venue venue_data = doc.css('.top h2') venue = ve

输出应为:

require 'nokogiri'

require 'open-uri'

url  = 'http://racingaustralia.horse/FreeFields/RaceProgram.aspx?Key=2016Feb13,VIC,Caulfield'
html = open(url)

doc = Nokogiri::HTML(html)

## get the:

# venue
venue_data = doc.css('.top h2')

venue = venue_data.text.split(':').first.strip

# date
date_data= doc.css('.top h2')

date = date_data.text.split(',').last.to_s.strip

# type of race track (metro, provincial, country)
race_track = doc.css('.top span')[1]

track_data = race_track.text.split(':').last

track = track_data.split('(').first.strip
## loop over races

table = doc.xpath('//table')

details = table.collect do |table|

time = table.at_xpath('tr[1]/th/a/text()')

race_number = table.at_xpath('tr[1]/th/a/span[1]/text()')

race_name = table.at_xpath('tr[1]/th/a/text()')

purse =  table.at_xpath('tr[2]/td/b/text()')


end
我需要时间、比赛号码等方面的具体词语


谢谢大家!!我需要一个数组输出。我已经将HTML文件保存在我的电脑上,并且正在使用url上的路径。

对于代码中的特定站点,您不能将其作为此站点的服务条款--明确排除刮取:

用户行为

您不得以涉及以下内容的任何方式访问或使用本网站: 使用计算机代码或软件应用程序(包括互联网) 机器人)运行自动任务,搜索、复制、“刮取”、存储 和/或重复使用网站上的材料或产品,无论是否用于 出于个人、非商业、娱乐或其他目的

output = {date: venue: track: {time:,race_number:, race_name:, purse:}, ..., }