Class: MovieRecommender::Scraper
- Inherits:
-
Object
- Object
- MovieRecommender::Scraper
- Defined in:
- lib/movie_recommender/scraper.rb
Instance Attribute Summary collapse
-
#base_url ⇒ Object
Returns the value of attribute base_url.
-
#description ⇒ Object
Returns the value of attribute description.
-
#document ⇒ Object
Returns the value of attribute document.
-
#html ⇒ Object
Returns the value of attribute html.
-
#score ⇒ Object
Returns the value of attribute score.
Instance Method Summary collapse
-
#initialize ⇒ Scraper
constructor
A new instance of Scraper.
- #scrape_details(url) ⇒ Object
- #scrape_movies ⇒ Object
Constructor Details
#initialize ⇒ Scraper
Returns a new instance of Scraper.
5 6 7 8 9 10 11 |
# File 'lib/movie_recommender/scraper.rb', line 5 def initialize location = MovieRecommender::CLI.all[1] postal_code = MovieRecommender::CLI.all[0] @base_url = "https://www.imdb.com/" @html = open("#{@base_url}/showtimes/location/#{location}/#{postal_code}") @document = Nokogiri::HTML(html) end |
Instance Attribute Details
#base_url ⇒ Object
Returns the value of attribute base_url.
3 4 5 |
# File 'lib/movie_recommender/scraper.rb', line 3 def base_url @base_url end |
#description ⇒ Object
Returns the value of attribute description.
3 4 5 |
# File 'lib/movie_recommender/scraper.rb', line 3 def description @description end |
#document ⇒ Object
Returns the value of attribute document.
3 4 5 |
# File 'lib/movie_recommender/scraper.rb', line 3 def document @document end |
#html ⇒ Object
Returns the value of attribute html.
3 4 5 |
# File 'lib/movie_recommender/scraper.rb', line 3 def html @html end |
#score ⇒ Object
Returns the value of attribute score.
3 4 5 |
# File 'lib/movie_recommender/scraper.rb', line 3 def score @score end |
Instance Method Details
#scrape_details(url) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/movie_recommender/scraper.rb', line 21 def scrape_details(url) html = open("#{@base_url}/#{url}") document = Nokogiri::HTML(html) @score = document.css(".AggregateRatingButton__RatingScore-sc-1il8omz-1.fhMjqK").text.strip description_row = document.css(".ipc-html-content.ipc-html-content--base").first.text.strip.split(".") description_row.pop() @description = description_row.join(".") end |
#scrape_movies ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/movie_recommender/scraper.rb', line 13 def scrape_movies self.document.css(".lister-item.mode-grid").collect do |movie| title = movie.css(".title").text.strip url = movie.css(".title").css("a").attr("href").value.split("/").slice(2, 3).join("/") MovieRecommender::Movie.new(title: title, url: url) end end |