static void PreparaCargaDb() { var _context = new ValoresContext(); _context.Database.ExecuteSqlCommand("TRUNCATE TABLE [Valores]"); //borran antiguos datos _context.SaveChanges(); HtmlWeb oWeb = new HtmlWeb(); HtmlDocument doc = oWeb.Load("https://www.acara.org.ar/guia-oficial-de-precios.php?tipo=AUTOS"); List <string> Marcas = new List <string>(); foreach (HtmlNode marcas in doc.DocumentNode.CssSelect(".col-sm-3")) { Marcas.Add(marcas.InnerText.Trim()); } for (int i = 0; i < Marcas.Count; i++) { Console.Clear(); Console.WriteLine("\n\rCargando " + Marcas[i] + " a la DB.."); CargaValoresDb("https://www.acara.org.ar/guia-oficial-de-precios.php?tipo=AUTOS&marca=" + Marcas[i] + "&modelo=todos&version=todas", Marcas[i]); Console.WriteLine("\n\rMarca cargada con éxito!"); } }
static void CargaValoresDb(string ruta, string marca) { var _context = new ValoresContext(); HtmlWeb oWeb = new HtmlWeb(); HtmlDocument doc = oWeb.Load(ruta); if (doc.DocumentNode.SelectNodes("//tr/th") != null && doc.DocumentNode.SelectNodes("//tr[td]") != null) { DataTable table = new DataTable(); foreach (HtmlNode header in doc.DocumentNode.SelectNodes("//tr/th")) { table.Columns.Add(header.InnerText); } foreach (var row in doc.DocumentNode.SelectNodes("//tr[td]")) { table.Rows.Add(row.SelectNodes("td").Select(td => td.InnerText).ToArray()); } foreach (DataRow fila in table.Rows) { Valores val = new Valores(); val.Marca = marca; val.Modelo = fila.ItemArray.GetValue(0).ToString(); val.Version = fila.ItemArray.GetValue(1).ToString(); val.Moneda = fila.ItemArray.GetValue(2).ToString(); val.Okm = fila.ItemArray.GetValue(3).ToString(); val.Año2019 = fila.ItemArray.GetValue(4).ToString(); val.Año2018 = fila.ItemArray.GetValue(5).ToString(); val.Año2017 = fila.ItemArray.GetValue(6).ToString(); val.Año2016 = fila.ItemArray.GetValue(7).ToString(); val.Año2015 = fila.ItemArray.GetValue(8).ToString(); val.Año2014 = fila.ItemArray.GetValue(9).ToString(); val.Año2013 = fila.ItemArray.GetValue(10).ToString(); val.Año2012 = fila.ItemArray.GetValue(11).ToString(); val.Año2011 = fila.ItemArray.GetValue(12).ToString(); val.Año2010 = fila.ItemArray.GetValue(13).ToString(); val.Año2009 = fila.ItemArray.GetValue(14).ToString(); val.Año2008 = fila.ItemArray.GetValue(15).ToString(); val.Año2007 = fila.ItemArray.GetValue(16).ToString(); val.Año2006 = fila.ItemArray.GetValue(17).ToString(); val.Año2005 = fila.ItemArray.GetValue(18).ToString(); _context.Add(val); _context.SaveChanges(); } } else { Console.WriteLine("\r\nError. Datos ingresados incorrectos."); Console.ReadKey(); Main(); } }