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:}, ..., }