Class: Satoshi::Scraper

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

Constant Summary collapse

COIN_MARKET_CAP_URL =
"https://coinmarketcap.com/"

Class Method Summary collapse

Class Method Details

.scrape_info_page(url) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/satoshi/scraper.rb', line 15

def self.scrape_info_page(url)
  doc = Nokogiri::HTML(open(COIN_MARKET_CAP_URL + url))
  info_hash = {}
  info_hash[:percent_change] = doc.css(".details-panel-item--price .h2 span").text
  info_hash[:btc_price] = doc.css(".details-panel-item--price .text-gray span").text.strip
  info_hash[:ticker] = doc.css("span.h3").text.gsub("(","").gsub(")","")
  market_cap_array = doc.css("div.coin-summary-item")

  market_cap_array.each {|coin_container|
    price_type = coin_container.css("h5.coin-summary-item-header").text
    case price_type
    when "Market Cap"
      info_hash[:usd_market_cap] = coin_container.css("div.coin-summary-item-detail span span")[0].text
      info_hash[:btc_market_cap] = coin_container.css("div.coin-summary-item-detail span span")[2].text.gsub("\n", "")
    when "Volume (24h)"
      info_hash[:volume_usd_24hr] = coin_container.css("div.coin-summary-item-detail span span")[0].text
      info_hash[:volume_btc_24hr] = coin_container.css("div.coin-summary-item-detail span span")[2].text.gsub("\n", "")
    when "Circulating Supply"
      info_hash[:circulating_supply_btc] = coin_container.css("div.coin-summary-item-detail span").text.strip
    when "Max Supply"
      info_hash[:max_supply] = coin_container.css("div.coin-summary-item-detail span").text.strip
    end
  }
  info_hash
end

.scrape_new_price_for_coin(url) ⇒ Object



48
49
50
51
# File 'lib/satoshi/scraper.rb', line 48

def self.scrape_new_price_for_coin(url)
    doc = Nokogiri::HTML(open(COIN_MARKET_CAP_URL + url))
    doc.css(".details-panel-item--price__value").text.to_f
end

.scrape_news_for_coin_url(url) ⇒ Object



41
42
43
44
45
46
# File 'lib/satoshi/scraper.rb', line 41

def self.scrape_news_for_coin_url(url)
    doc = Nokogiri::HTML(open(COIN_MARKET_CAP_URL + url + "/#social"))
    binding.pry
    twitter = doc.css("div#social .col-sm-6")[0].css(".twitter-timeline").attr("href").value
    rediit = doc.css("div#social .col-sm-6")[1].css(".reddit-timeline")
end

.scrape_top_100_coinsObject



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

def self.scrape_top_100_coins
    doc = Nokogiri::HTML(open(COIN_MARKET_CAP_URL))
     coin_array = doc.css("tbody tr").each_with_index.map { |coin_container, index|
       name = coin_container.css("a.currency-name-container").text.strip
       link = coin_container.css("a.currency-name-container").attr("href").value
       price = coin_container.css("a.price").attr("data-usd").value.strip
       #puts "#{index + 1}. #{name}-$#{price}"
       coin_hash = {:name => name, :usd_price => price,:index => index + 1 , :info_link => link}
     }
end