2011-07-20 10 views
0

私はウェブサイトを削り取ろうとしています。私はそのウェブサイトからデータをスクラップすることができます。あなたはブロックが始まる前にopenコール()右用閉じ括弧が欠落している
Webscrapedデータを保存する

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 
} 

答えて

0

まず:私は
マイコードが含まれているトラブルYAMLファイルにこすりからのデータを保存が生じています)。

これを追加すると、NoMethodErrorundefined method 'to_yaml' for []:Array)になります。あなたはrequire 'yaml'を持っていなければならないということを修正するには、クラスのモンキーパッチを引っ張ってください。その後、articleに何も入れていないので、yamlファイルが空であることがわかります。固定バージョンは次のとおりです。

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 }