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 件
urlsの中身どうなってるの?
関連するトピックス