2016-02-14 32 views
-1
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表格上抓取特定数据并从中输出数组?

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

,我需要从时间,race_number特定词等

谢谢!我需要有一个数组输出。我已经将HTML文件保存在我的电脑上,并在网址上使用它的路径。

回答

1

你不能,在代码中的特定网站,为服务这个网站的条款 - Terms Of Use - 明确排除刮:

用户行为

您不能访问或使用该网站以涉及使用计算机代码或软件应用程序(包括互联网 机器人)的任何方式运行搜索,复制,“刮”,存储 和/或重新使用本网站中的材料或产品的自动任务,无论是您的个人,非公司的 商业,娱乐目的或其他。

相关问题