class BillboardHot100::Scraper
Public Class Methods
scrape_songs()
click to toggle source
# File lib/billboard_hot_100/scraper.rb, line 2 def self.scrape_songs songs = [] index = Nokogiri::HTML(open("https://www.billboard.com/charts/hot-100")) index.css("div.chart-list-item").each do |song| songs << { rank: song.css(".chart-list-item__rank").text.strip, title: song.css(".chart-list-item__title-text").text.strip, artist: song.css(".chart-list-item__artist").text.strip, last_week: song.css(".chart-list-item__last-week").text.strip, peak_position: song.css(".chart-list-item__weeks-at-one").text.strip, weeks_on_chart: song.css(".chart-list-item__weeks-on-chart").text.strip, lyrics: song.css('div.chart-list-item__lyrics a').map { |link| link['href'] }.join, award: song.css(".chart-list-item__award-icon").text.strip } end BillboardHot100::Song.create(songs) end