配列がわかった!
コード
lass Scraping
def self.movie_urls
links = []
agent1 = Mechanize.new
main_page = agent1.get("http://eiga.com/now/")
elements = main_page.search('.m_unit h3 a')
elements.each do |ele|
links << ele.get_attribute('href')
end
links.each do |link|
get_product('http://eiga.com' + link)
end
def self.get_product(link)
agent2 = Mechanize.new
sub_page = agent2.get("http://eiga.com/" + links)
title = sub_page.at('.moveInfoBox h1')
image = sub_page.at('.pictBox img')
puts title
puts image
end
end
理解したこと
- 配列は引数などとは違って、何かを受け渡したりしない!
links = []
agent1 = Mechanize.new
main_page = agent1.get("http://eiga.com/now/")
elements = main_page.search('.m_unit h3 a')
elements.each do |ele|
links << ele.get_attribute('href')
end
lass Scraping
def self.movie_urls
links = []
agent1 = Mechanize.new
main_page = agent1.get("http://eiga.com/now/")
elements = main_page.search('.m_unit h3 a')
elements.each do |ele|
links << ele.get_attribute('href')
end
links.each do |link|
get_product('http://eiga.com' + link)
end
def self.get_product(link)
agent2 = Mechanize.new
sub_page = agent2.get("http://eiga.com/" + links)
title = sub_page.at('.moveInfoBox h1')
image = sub_page.at('.pictBox img')
puts title
puts image
end
end
- 配列は引数などとは違って、何かを受け渡したりしない!
links = []
agent1 = Mechanize.new
main_page = agent1.get("http://eiga.com/now/")
elements = main_page.search('.m_unit h3 a')
elements.each do |ele|
links << ele.get_attribute('href')
end
まずこのコードで空の配列linksに、main_pageから取得したhref要素の全てを入れている。つまり、メイン画面のリンク先が溜まっているタンクのようなものを作成している。
links.each do |link|
get_product('http://eiga.com' + link )
end
現段階ではlinksに多くのリンク先がたまっているので、今度はそのlink先一つ一つについて分解したいのだが、その前にlinkのurlについて整理し、それをget_productというメソッドに渡している。つまりeach.do関数でたまっているlinksが一つ一つlinkとしてget_product(http:// + link)という形で定義され、全てのリンク先が定義される。
def self.get_product(link)
agent2 = Mechanize.new
page = agent.get(link)
title = page.at('.moveInfoBox h1').inner_text
image_url = page.at('.pictBox img')[:src]
product ~ Product.new(:title => title, :image_url => image_url)
product.save
end
end
そしてここで得たlinkという配列をつかって、リンク先の一つ一つのタイトルをゲットしてるのだ。
Author And Source
この問題について(配列がわかった!), 我々は、より多くの情報をここで見つけました https://qiita.com/kazukisu3/items/7b7e6806b369cae2dc7a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .