public List <TournamentRound> RetrieveData() { List <TournamentRound> tournamentRoundCollection = new List <TournamentRound>(); NameValueCollection parametros = new NameValueCollection(); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); this.MrRobotWebClient._allowAutoRedirect = false; for (int i = 0; i <= 38; i++) { var ret = this.HttpGet($@"http://globoesporte.globo.com/servico/esportes_campeonato/responsivo/widget-uuid/bc112c6b-2a2e-4620-8f01-1f31cfa6af5c/fases/fase-unica-seriea-2016/rodada/{i}/jogos.html"); var results = ret.DocumentNode.Descendants("li").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("lista-de-jogos-item"))); List <SoccerMatchResult> soccerMatchResultCollection = new List <SoccerMatchResult>(); foreach (var item in results) { SoccerMatchResult soccerMatchResult = new SoccerMatchResult(); //Carregando o Html de cada artigo. doc.LoadHtml(item.InnerHtml); //Estou utilizando o HtmlAgilityPack.HtmlEntity.DeEntitize para fazer o HtmlDecode dos textos capturados de cada artigo. // Utilizo também o UTF8 para limpar o restante dos Encodes que estiverem na página. var matchData = doc.DocumentNode.Descendants("div").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes"))).FirstOrDefault(); var homeTeamData = matchData.Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-mandante"))); var awayTeamData = matchData.Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-visitante"))); var scoreData = matchData.Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-placar"))); soccerMatchResult.HomeTeam = HtmlAgilityPack.HtmlEntity.DeEntitize(ConvertUTF(homeTeamData.FirstOrDefault().Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-nome"))).FirstOrDefault().InnerText)); soccerMatchResult.AwayTeam = HtmlAgilityPack.HtmlEntity.DeEntitize(ConvertUTF(awayTeamData.FirstOrDefault().Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-nome"))).FirstOrDefault().InnerText)); soccerMatchResult.HomeScore = HtmlAgilityPack.HtmlEntity.DeEntitize(ConvertUTF(scoreData.FirstOrDefault().Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-placar-mandante"))).FirstOrDefault().InnerText)); soccerMatchResult.AwayScore = HtmlAgilityPack.HtmlEntity.DeEntitize(ConvertUTF(scoreData.FirstOrDefault().Descendants("span").Where(d => (d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("placar-jogo-equipes-placar-visitante"))).FirstOrDefault().InnerText)); if (string.IsNullOrWhiteSpace(soccerMatchResult.HomeScore)) { continue; } soccerMatchResultCollection.Add(soccerMatchResult); } TournamentRound tournamentRound = new TournamentRound(); tournamentRound.Round = i; tournamentRound.SoccerMatchResultCollection = soccerMatchResultCollection; tournamentRoundCollection.Add(tournamentRound); } return(tournamentRoundCollection); }
private SoccerMatchResult NewMatchResultByJson(dynamic jsonArray, string name) { var array = jsonArray as JArray; if (array == null || array.Count() <= 0) { return(null); } var result = new SoccerMatchResult(); foreach (var item in array) { if (item["ResultName"].ToString() == name) { result.GoalsOfTeam1 = (int)item["PointsTeam1"]; result.GoalsOfTeam2 = (int)item["PointsTeam2"]; break; } } return(result); }