質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

4645閲覧

NameError: uninitialized constant Scrapingというエラーが出てしまいます。

KanTkg

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/10/15 12:07

実現したいこと

初めまして。
Ruby初心者です。
http://eiga.comの映画情報をスクレイピングしてDB保存したかったのですが
以下のようなエラーが出てしまいます。

発生しているエラー

irb(main):022:0> Scraping.movie_urls NameError: uninitialized constant Scraping::Matsushitaze

該当のソースコード

class Scraping def self.movie_urls agent = Mechanize.new links = [] next_url= "/now/" agent.user_agent_alias = "Windows Mozilla" while true current_page = agent.get("http://eiga.com" + next_url) elements = current_page.search('.m_unit h3 a') elements.each do |ele| links << ele.get_attribute('href') end next_link = current_page.at('.next_page') next_url = next_link.get_attribute('href') break unless next_url end links.each do |link| get_product('http://eiga.com' + link) end end def self.get_product(link) agent = Matsushitaze.new agent.user_agent_alias = "Windows Mozilla" page = agent.get(link) title = page.at('.moveInfoBox h1').inner_text image_url = page.at('.pictBox img')[:src] if page.at('.pictBox img') director = page.at('.f span').inner_text if page.at('.f span') detail = page.at('.outline p').inner_text open_date = page.at('.opn_date strong').inner_text if page.at('.opn_date strong') product = Product.where(title: title, image_url: image_url).first_or_initialize product.director = director product.detail = detail product.open_date = open_date product.save end end

このエラーを調べましたが、このエラーに関して書いているサイトが少なくて困っております。
調べ方が悪いのかもしれません。
お手数おかけしますが、何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

NameError: uninitialized constant Scraping::Matsushitaze

このエラーはScraping::Matsushitazeが定義されていないよーというような意味です。

ruby

1 def self.get_product(link) 2 agent = Matsushitaze.new 3 agent.user_agent_alias = "Windows Mozilla"

ここのagent = Matsushitaze.newagent = Mechanize.newの間違いではないでしょうか?
そうであれば、そこを修正したら良いと思います。

投稿2016/10/15 12:27

cameluby

総合スコア891

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KanTkg

2016/10/15 13:33

無事解決できました! こんな初歩的なエラーも見つけられず…。 非常に助かりました。ありがとうございます!!
guest

0

ruby

1agent = Matsushitaze.new

「Matsushitaze」はどこかで定義されているのでしょうか。

投稿2016/10/15 12:16

編集2016/10/15 12:17
maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KanTkg

2016/10/15 13:34

ご指摘いただいた箇所をMechanize.newに変えたところ、作動しました。 非常に助かりました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問