Class: Scraper

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

Class Method Summary collapse

Class Method Details

.album_descriptionObject



27
28
29
30
31
32
# 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) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# 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_scoreObject



20
21
22
23
24
25
# 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) ⇒ Object



4
5
6
# File 'lib/best_music/scraper.rb', line 4

def self.scrape_pitchfork(index_url)
    index = Nokogiri::HTML(open(index_url))
end