class AtpScraper::Ranking

Scrape ranking data

Public Class Methods

new(html, html_charset = 'utf-8') click to toggle source
# File lib/atp_scraper/ranking.rb, line 12
def initialize(html, html_charset = 'utf-8')
  @ranking_doc = AtpScraper::Html.parse(html, html_charset)
end

Public Instance Methods

pickup_ranking_data() click to toggle source
# File lib/atp_scraper/ranking.rb, line 16
def pickup_ranking_data
  result = []
  search_player_doc.each do |player_doc|
    result.push(pickup_player_data(player_doc))
  end
  result
end

Private Instance Methods

get_url_id(url) click to toggle source

“/en/players/rafael-nadal/n409/overview” => “n409”

# File lib/atp_scraper/ranking.rb, line 65
def get_url_id(url)
  url.split("/")[4]
end
get_url_name(url) click to toggle source

“/en/players/rafael-nadal/n409/overview” => “rafael-nadal”

# File lib/atp_scraper/ranking.rb, line 60
def get_url_name(url)
  url.split("/")[3]
end
pickup_player_country(player_doc) click to toggle source
# File lib/atp_scraper/ranking.rb, line 69
def pickup_player_country(player_doc)
  player_doc.css(".country-item img").attr("alt").value
end
pickup_player_data(player_doc) click to toggle source
# File lib/atp_scraper/ranking.rb, line 30
def pickup_player_data(player_doc)
  url = pickup_player_url(player_doc)
  {
    ranking: pickup_player_rank(player_doc),
    player_name: pickup_player_name(player_doc),
    player_url_name: get_url_name(url),
    player_id: get_url_id(url),
    country: pickup_player_country(player_doc),
    points: pickup_player_points(player_doc)
  }
end
pickup_player_name(player_doc) click to toggle source
# File lib/atp_scraper/ranking.rb, line 46
def pickup_player_name(player_doc)
  player_doc.css(".player-cell").first.content.strip
end
pickup_player_points(player_doc) click to toggle source

points: '5,000'(in html) => '5000'

# File lib/atp_scraper/ranking.rb, line 55
def pickup_player_points(player_doc)
  player_doc.css(".points-cell").first.content.strip.delete(',')
end
pickup_player_rank(player_doc) click to toggle source
# File lib/atp_scraper/ranking.rb, line 42
def pickup_player_rank(player_doc)
  player_doc.css(".rank-cell").first.content.strip
end
pickup_player_url(player_doc) click to toggle source
# File lib/atp_scraper/ranking.rb, line 50
def pickup_player_url(player_doc)
  player_doc.css(".player-cell a").attr("href").value
end
search_player_doc() click to toggle source
# File lib/atp_scraper/ranking.rb, line 26
def search_player_doc
  @ranking_doc.css(".mega-table tbody tr")
end