Class: Sportify::MLBscraper

Inherits:
Object
  • Object
show all
Defined in:
lib/scrapers/mlb_scraper.rb

Constant Summary collapse

@@root_url =
"https://www.mlb.com/team"
@@root_html =
open(@@root_url)
@@root_doc =
Nokogiri::HTML(@@root_html)

Instance Method Summary collapse

Instance Method Details

#player_names(team) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/scrapers/mlb_scraper.rb', line 49

def player_names(team)
  player_names = []
  doc = roster_doc(team)
  doc.css("td.dg-name_display_first_last").css("a").each do |player|
    player_names << player.text
  end
  player_names
end

#player_numbers(team) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/scrapers/mlb_scraper.rb', line 40

def player_numbers(team)
  player_numbers = []
  doc = roster_doc(team)
  doc.css("table.data.roster_table").css("td.dg-jersey_number").each do |player|
    player_numbers << player.text
  end
  player_numbers
end

#roster_doc(team) ⇒ Object



34
35
36
37
38
# File 'lib/scrapers/mlb_scraper.rb', line 34

def roster_doc(team)
  url = roster_url(team[:team_url])
  html = open(url)
  Nokogiri::HTML(html)
end

#roster_url(team_url) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/scrapers/mlb_scraper.rb', line 23

def roster_url(team_url)
  html = open(team_url)
  doc = Nokogiri::HTML(html)
  if team_url == "https://www.mlb.com/reds" || team_url == "https://www.mlb.com/dodgers" || team_url == "https://www.mlb.com/giants"
    roster_url = doc.css("div.megamenu-navbar").css("a.megamenu-static-navbar__menu-item.megamenu-static-navbar__menu-item--roster").attribute("href").value
  else
    roster_url = doc.css("div.megamenu-navbar").css("a.megamenu-static-navbar__menu-item.megamenu-static-navbar__menu-item--team").attribute("href").value
  end
  roster_url
end

#team_urlsObject



15
16
17
18
19
20
21
# File 'lib/scrapers/mlb_scraper.rb', line 15

def team_urls
  team_urls = []
  @@root_doc.css("div.p-wysiwyg").each do |team|
    team_urls << team.css("a")[0]["href"]
  end
  team_urls
end

#teamsObject



7
8
9
10
11
12
13
# File 'lib/scrapers/mlb_scraper.rb', line 7

def teams
  teams = []
  @@root_doc.css("div.u-text-h4.u-text-flow").each do |team|
    teams << team.text
  end
  teams
end