Class: AsanaCliGem::Scraper

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

Instance Method Summary collapse

Instance Method Details

#asana_details(url) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/asana_cli_gem/scraper.rb', line 16

def asana_details(url)
  pose_scraper = Nokogiri::HTML(open(url))

  optional_attributes = {}
  pose_scraper.css('div.m-detail--body h3').each do |attribute|
    optional_attributes[attribute.text] = attribute.css('+p').text
  end

  updated_pose = AsanaCliGem::Asana.all.detect {|pose| pose.url == url }
  updated_pose.summary = pose_scraper.css('div.m-detail-header--dek').text
  updated_pose.sanskrit = optional_attributes["Sanskrit Name"] if optional_attributes["Sanskrit Name"]
  updated_pose.tip = optional_attributes["Beginner's Tip"] if optional_attributes["Beginner's Tip"]
end

#pose_collectorObject



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/asana_cli_gem/scraper.rb', line 3

def pose_collector
doc = Nokogiri::HTML(open('https://www.yogajournal.com/poses/types/strength'))

doc.css('#lyra-wrapper > div.m-page-wrapper > div.m-advertisement-off-canvas--pusher > section > div.m-page > section.m-tile-hub.m-component-stack.mm-component-stack--is-stacked')
.css('a.m-card--header').collect do |pose|
    new_pose = AsanaCliGem::Asana.new
    new_pose.name = pose.css('h2').text
    new_pose.url = "https://www.yogajournal.com#{pose.attribute("href").value}"

    new_pose.save
  end
end