23915


railsでスクレイピングを行うようにコードを書いています。  
コンソールでスクレイピングを実行したら、

[code]

    NameError: undefined local variable or method `current_page' for Scraping:Class
    from /Users/mooovi/app/models/scraping.rb:13:in `movie_urls'
    
[/code]

とエラーメッセージが出ました。  
current_pageが定義されていない、と出ていますが  
どうしてそう言われるのかわかりません。  
scraping.rbに

[code]

    class Scraping
        def self.movie_urls
        agent = Mechanize.new
        links = []
        next_url = "/now/"
    
       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')
    
        unless next_url
         break
        end
    
          links.each do |link|
          get_product('http://eiga.com' + link)
          end
      end
    
        def self.get_product(link)
        agent = Mechanize.new
        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
    
[/code]

のようにコードを記載しました。

[code]

    current_page=agent.get("http://eiga.com"+next_url)
    
[/code]

の所でcurrent_pageを定義しているのですが。。。


CC BY-SA 3.0
2016-03-31T06:16:02.663
23644
2016-04-11T10:18:01.877
14754
question
ruby-on-rails
スクレイピングのコンソールでのつまり


current_page を @current_page にすべて置換してみればよいかもです。


CC BY-SA 3.0
2016-04-11T10:18:01.877
23915
2016-04-11T10:18:01.877
15010
23644
answer