Class: RtTop100::Scraper

Inherits:
Object
  • Object
show all
Defined in:
lib/rt_top_100/scraper.rb

Class Method Summary collapse

Class Method Details

.scrape_movie(details_url) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rt_top_100/scraper.rb', line 18

def self.scrape_movie(details_url)
  movie_details = {}
  details_page = Nokogiri::HTML(open(details_url))

  details_page.css('#mainColumn').each do | detail |
    movie_details[:tomatometer_score] = detail.css("#scorePanel .tab-content #all-critics-numbers a .meter-value").text
    movie_details[:audience_score] = detail.css(".audience-score a .superPageFontColor").first.text
    movie_details[:critic_consensus] = detail.css(".critic_consensus.tomato-info.noSpacing.superPageFontColor").text.gsub("Critic Consensus:", "").split.join(" ")
    movie_details[:synopsis] = detail.css("#movieSynopsis").text.strip
    movie_details[:rating] = detail.css("div.panel-body ul.content-meta li .meta-value").first.text.strip
    movie_details[:release_date] = detail.css("div.panel-body ul.content-meta li .meta-value")[4].text.strip.split.join(" ")
    movie_details[:genre] = detail.css("div.panel-body ul.content-meta li .meta-value")[1].text.strip.split.join(" ")
    movie_details[:director] = detail.css("div.panel-body ul.content-meta li .meta-value")[2].text.strip
  end

  movie_details
end

.scrape_top_100(main_url) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/rt_top_100/scraper.rb', line 6

def self.scrape_top_100(main_url)
  top_100_page = Nokogiri::HTML(open("https://www.rottentomatoes.com/top/bestofrt/"))

  top_100_page.css("div.panel-body.content_body.allow-overflow table.table").each do | box |
    box.css('a.unstyled.articleLink').each do |movie|
      movie_title = movie.text.strip
      movie_url = movie.attr('href')
      RtTop100::Movie.new({title: movie_title, movie_url: movie_url})
    end
  end
end