スクレイピングをするときに、末尾が連番で増えるURLをまとめて取得したいです。
下記の#{0301 + i}という記述で、eachメソッドを使って、数を増やしています。
しかし、エラーで上手く機能しません。
連番URLの取得はどのようにすれば実現可能でしょうか。
require 'mechanize' def scraping_image(link) agent = Mechanize.new page = agent.get(link) image_url = page.at('.products-mainImg img').get_attribute('src') return image_url end links = [] # 個別ページのリンクを保存する配列 agent = Mechanize.new (0..3).each do |i| current_page = agent.get("http://www.morinaga.co.jp/products/list.php?id=#{0301 + i}") elements = current_page.search('.products__list__item a') elements.each do |ele| links << ele.get_attribute('href') end end links.each do |link| puts scraping_image('http://www.morinaga.co.jp/products/' + link) end
ちなみに、連番は無視して1つのURLを取得する下記のコードは正常に機能しています。
require 'mechanize' def scraping_image(link) agent = Mechanize.new page = agent.get(link) image_url = page.at('.products-mainImg img').get_attribute('src') return image_url end links = [] # 個別ページのリンクを保存する配列 agent = Mechanize.new current_page = agent.get("http://www.morinaga.co.jp/products/list.php?id=0301") elements = current_page.search('.products__list__item a') elements.each do |ele| links << ele.get_attribute('href') end links.each do |link| puts scraping_image('http://www.morinaga.co.jp/products/' + link) end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。