Advertisement
LaughingMan

Untitled

Dec 9th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.36 KB | None | 0 0
  1. public static void GetStandings()
  2.         {
  3.             var standingsUrlTemplate =
  4.                 "http://www.nfl.com/standings?category={0}&season={1}-{2}&split={3}";
  5.  
  6.             var categoryFilter = NFLStandingsCategory.league;
  7.             var category = categoryFilter.ToString();
  8.  
  9.             for (var i = 1920; i <= DateTime.UtcNow.Year; i++)
  10.             {
  11.                 Console.Write("{0} ", i);
  12.                 foreach (var seasonType in default(NFLSeasonType).GetEnums())
  13.                 {
  14.                     Console.Write("{0} Season | ", seasonType);
  15.                     foreach (var split in default(NFLStandingsSplit).GetEnums())
  16.                     {
  17.                         Console.WriteLine(split);
  18.                         var url = string.Format(standingsUrlTemplate, category, i, seasonType, split);
  19.  
  20.                         var response = Traffic.HTTPGET(url).CleanResponseString();
  21.  
  22.                         if (!response.IsNullOrWhiteSpace())
  23.                         {
  24.                             var document = new HtmlDocument();
  25.                             document.LoadHtml(response);
  26.  
  27.                             var table = document.GetElementbyId("doc-wrap").Descendants("table").FirstOrDefault();
  28.  
  29.                             if (table == null)
  30.                                 continue;
  31.  
  32.                             var rows = new List<HtmlNode>();
  33.                             foreach (var row in table.ChildNodes)
  34.                             {
  35.                                 var isSpacer = row.ChildNodes[0].Attributes["class"] != null &&
  36.                                                row.ChildNodes[0].Attributes["class"].Value == "tbdy-spacer";
  37.  
  38.                                 if (!isSpacer)
  39.                                 {
  40.                                     rows.Add(row);
  41.                                     continue;
  42.                                 }
  43.  
  44.                                 switch (split)
  45.                                 {
  46.                                     case NFLStandingsSplit.AFC:
  47.                                         ProcessAFCStandingsTable(rows);
  48.                                         break;
  49.                                     case NFLStandingsSplit.Division:
  50.                                         ProcessDivisionStandingsTable(rows);
  51.                                         break;
  52.                                     case NFLStandingsSplit.Grass:
  53.                                         ProcessGrassStandingsTable(rows);
  54.                                         break;
  55.                                     case NFLStandingsSplit.Home:
  56.                                         ProcessHomeStandingsTable(rows);
  57.                                         break;
  58.                                     case NFLStandingsSplit.Indoors:
  59.                                         ProcessIndoorsStandingsTable(rows);
  60.                                         break;
  61.                                     case NFLStandingsSplit.NFC:
  62.                                         ProcessNFCStandingsTable(rows);
  63.                                         break;
  64.                                     case NFLStandingsSplit.Outdoors:
  65.                                         ProcessOutdoorsStandingsTable(rows);
  66.                                         break;
  67.                                     case NFLStandingsSplit.Overall:
  68.                                         ProcessOverallStandingsTable(rows);
  69.                                         break;
  70.                                     case NFLStandingsSplit.Overtime:
  71.                                         ProcessOvertimeStandingsTable(rows);
  72.                                         break;
  73.                                     case NFLStandingsSplit.Road:
  74.                                         ProcessRoadStandingsTable(rows);
  75.                                         break;
  76.                                     case NFLStandingsSplit.Turf:
  77.                                         ProcessTurfStandingsTable(rows);
  78.                                         break;
  79.                                     default:
  80.                                         throw new ArgumentOutOfRangeException("split");
  81.                                 }
  82.                                 rows.Clear();
  83.                             }
  84.                         }
  85.                     }
  86.                 }
  87.             }
  88.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement