private static void InsereRankingMusicas(RankingMusica rankingMusica) { using var context = new CifrasContext.CifrasDbContext(); context.Database.EnsureCreated(); try { context.RankingMusicas.Add(rankingMusica); context.SaveChanges(); } catch { Console.WriteLine("Algum erro ocorreu!"); } }
private static async Task StartCrawlerasync() { int cont = 1; Ranking ranking = new Ranking(); ranking.data = DateTime.Now; ranking = InsereRanking(ranking); var url = "https://www.cifraclub.com.br/"; var client = new WebClient(); string pagina = client.DownloadString(url); var htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(pagina); var spans = htmlDocument.DocumentNode.Descendants("span") .Where(node => node.GetAttributeValue("class", "").Equals("top-number")).ToList(); foreach (var span in spans) { var artista = new Artista(); var a = new Artista(); var musica = new Musica(); var m = new Musica(); var rankingMusicas = new RankingMusica(); musica.Nome = (span.Descendants("strong") .Where(node => node.GetAttributeValue("class", "").Equals("top-txt_primary"))) .FirstOrDefault().InnerText; artista.Nome = (span.Descendants("span") .Where(node => node.GetAttributeValue("class", "").Equals("top-txt_secondary"))) .FirstOrDefault().InnerText; a = BuscaPorNomeArtista(artista.Nome); m = BuscaPorNomeMusica(musica.Nome); if (a == null) { musica.Artista = artista; } else { musica.Artista = a; } if (m == null) { musica = InsereMusica(musica); } else { musica = m; } rankingMusicas.MusicaID = musica.MusicaID; rankingMusicas.PosicaoMusica = cont; rankingMusicas.RankingID = ranking.RankingID; InsereRankingMusicas(rankingMusicas); cont++; } }