class Scraper

Public Class Methods

scrape_page() click to toggle source
# File lib/swole-news/scraper.rb, line 3
def self.scrape_page
  article_array = []

  doc = Nokogiri::HTML(open('https://www.bodybuilding.com/category/workouts'))

  doc.css(".cms-article-list--article.col.col-1").map do |article|
    article_hash = {
      :title => article.search("h3.title").text,
      :url => article.search("a").attribute('href').to_s,
      :read_time => article.search(".bb-read-time__time").text,
      :description => article.search("span.description").text
      }
      article_array << article_hash
    end
  article_array
end
scrape_workouts(article_url) click to toggle source
# File lib/swole-news/scraper.rb, line 20
def self.scrape_workouts(article_url)
  workout_array = []

  article = Nokogiri::HTML(open(article_url))
  wrapper = article.search(".cms-article-list__content--wrapper")

  wrapper.search(".cms-article-list__content--container .cms-article-list__content").each do |container|
      workout_hash = {
        :title => container.search(".cms-article-workout__exercise--title").text,
        :definition => container.search(".cms-article-workout__sets--definition span").text.strip
        }
      workout_array << workout_hash
    end
  workout_array
end