-
ID:JEWoMF さんの質問

nokogiriを使ってサイトスクレイピングをしています。

# -- coding: utf-8
require ’yaml’
require "open-uri"
require "rubygems"
require "nokogiri"

# yamlで列挙したURLを順番に読み込む
urls = YAML.load_file(File.expand_path(File.dirname(__FILE__)+"/urls.yml"))
urls.each do |url|

charset = nil
html = open(url) do |f|
charset = f.charset
f.read
end
doc = Nokogiri::HTML.parse(html, nil, charset)

# タイトルを表示
p doc.css(’h1’).text
p doc.css(’dd’)[0].text
p doc.css(’dd’)[3].text
p doc.css(’dd’)[4].text
p doc.css(’dd’)[5].text
p doc.css(’.description p’)[1].text
end
sleep 1

これをターミナルを使い実行したのですが、
undefined method `each’ for #<String:0x007fb4cba25d28> (NoMethodError)

というエラーが返ってきます。
いろいろ試行錯誤したものの、改善策が分からないです。
どなたか教えていただければ幸いです。

みんなの回答 1 件

ID:hSJuLn さんの回答

urlsの中身どうなってるの?

ID:hSJuLn

urlsの中身が配列じゃなくてStringになってるから、eachできないんじゃない?

最終更新日:2014-06-18 (2,733 views)

関連するトピックス

ページ上部に戻る