Сохранить данные в Webscraped - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь почистить сайт.Я могу собрать данные с этого сайта.У меня проблемы с сохранением данных из файла соскоба в файл yaml, который я включил
Мой код:

require 'rubygems'
require 'open-uri'
require 'hpricot'

article = []
     doc = open("http://www.cmegroup.com/trading/interest-rates/cleared-otc/irs.html"{|f| Hpricot(f) }

      (doc/"/html/body/div/div/div/div/table/").each do |article|
      puts "#{article.inner_html}"
       end

File.open('test.yaml', 'w') { |f|
f <<article.to_yaml
}

1 Ответ

0 голосов
/ 20 июля 2011

Сначала вам не хватает закрывающей скобки для вызова 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 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...