class Scraper

Public Class Methods

album_description() click to toggle source
# File lib/best_music/scraper.rb, line 27
def self.album_description
  Album.all.each do |a|
    url = "https://pitchfork.com#{a.url}"
    a.description = scrape_pitchfork(url).css(".review-detail__abstract").text.gsub(/\u0099\u0080/, "").gsub(/â€(?=\Ss)/, "'").gsub("â€", "--").gsub("é", "é").chomp
  end
end
album_list(index_url) click to toggle source
# File lib/best_music/scraper.rb, line 8
def self.album_list(index_url)
  a_list = scrape_pitchfork(index_url).css(".fragment-list").css(".review")
  a_list.each do |a|
    album = a.css(".review__title-album").text
    artist = a.css("li")[0].text.gsub("Ã", "ü").gsub("¼", "").gsub("ü©", "é")
    genre = a.css("li")[1].text
    url = a.css("a").attr("href").value
    Genre.new(genre) if !Genre.all.collect {|g| g.name}.include?(genre)
    Album.new(album, artist, genre, url) if !Album.all.collect {|a| a.name}.include?(album)
  end
end
album_score() click to toggle source
# File lib/best_music/scraper.rb, line 20
def self.album_score
  Album.all.each do |a|
    url = "https://pitchfork.com#{a.url}"
    a.rating = scrape_pitchfork(url).css(".score").text.to_f
  end
end
scrape_pitchfork(index_url) click to toggle source
# File lib/best_music/scraper.rb, line 4
def self.scrape_pitchfork(index_url)
    index = Nokogiri::HTML(open(index_url))
end