Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void GetStandings()
- {
- var standingsUrlTemplate =
- "http://www.nfl.com/standings?category={0}&season={1}-{2}&split={3}";
- var categoryFilter = NFLStandingsCategory.league;
- var category = categoryFilter.ToString();
- for (var i = 1920; i <= DateTime.UtcNow.Year; i++)
- {
- Console.Write("{0} ", i);
- foreach (var seasonType in default(NFLSeasonType).GetEnums())
- {
- Console.Write("{0} Season | ", seasonType);
- foreach (var split in default(NFLStandingsSplit).GetEnums())
- {
- Console.WriteLine(split);
- var url = string.Format(standingsUrlTemplate, category, i, seasonType, split);
- var response = Traffic.HTTPGET(url).CleanResponseString();
- if (!response.IsNullOrWhiteSpace())
- {
- var document = new HtmlDocument();
- document.LoadHtml(response);
- var table = document.GetElementbyId("doc-wrap").Descendants("table").FirstOrDefault();
- if (table == null)
- continue;
- var rows = new List<HtmlNode>();
- foreach (var row in table.ChildNodes)
- {
- var isSpacer = row.ChildNodes[0].Attributes["class"] != null &&
- row.ChildNodes[0].Attributes["class"].Value == "tbdy-spacer";
- if (!isSpacer)
- {
- rows.Add(row);
- continue;
- }
- switch (split)
- {
- case NFLStandingsSplit.AFC:
- ProcessAFCStandingsTable(rows);
- break;
- case NFLStandingsSplit.Division:
- ProcessDivisionStandingsTable(rows);
- break;
- case NFLStandingsSplit.Grass:
- ProcessGrassStandingsTable(rows);
- break;
- case NFLStandingsSplit.Home:
- ProcessHomeStandingsTable(rows);
- break;
- case NFLStandingsSplit.Indoors:
- ProcessIndoorsStandingsTable(rows);
- break;
- case NFLStandingsSplit.NFC:
- ProcessNFCStandingsTable(rows);
- break;
- case NFLStandingsSplit.Outdoors:
- ProcessOutdoorsStandingsTable(rows);
- break;
- case NFLStandingsSplit.Overall:
- ProcessOverallStandingsTable(rows);
- break;
- case NFLStandingsSplit.Overtime:
- ProcessOvertimeStandingsTable(rows);
- break;
- case NFLStandingsSplit.Road:
- ProcessRoadStandingsTable(rows);
- break;
- case NFLStandingsSplit.Turf:
- ProcessTurfStandingsTable(rows);
- break;
- default:
- throw new ArgumentOutOfRangeException("split");
- }
- rows.Clear();
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement