Сначала вам не хватает закрывающей скобки для вызова open
(a )
прямо перед началом блока).
Когда вы добавите это, вы заметите, что получите NoMethodError
(undefined method 'to_yaml' for []:Array
). Чтобы исправить это, вы должны require 'yaml'
, который вытягивает обезьяны-патчи для класса Array
. После этого вы заметите, что ваш файл yaml пуст, потому что вы никогда ничего не помещаете в article
. Вот исправленная версия:
require 'rubygems'
require 'open-uri'
require 'hpricot'
require 'yaml'
articles = []
url = "http://www.cmegroup.com/trading/interest-rates/cleared-otc/irs.html"
doc = open(url) {|f| Hpricot(f) }
(doc/"/html/body/div/div/div/div/table/").each do |article|
articles << article.inner_html
end
File.open('test.yaml', 'w') { |f| f << articles.to_yaml }