class RtTop100::Scraper
Public Class Methods
scrape_movie(details_url)
click to toggle source
# 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)
click to toggle source
# 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