public static ReservasModel GetModelFromBCRA() { var postParameters = new Dictionary <string, object>(); postParameters.Add("desde", DateTime.UtcNow.AddDays(-50).ToString("dd/MM/yyyy")); postParameters.Add("hasta", DateTime.UtcNow.AddDays(5).ToString("dd/MM/yyyy")); postParameters.Add("fecha", "Fecha_Serie"); postParameters.Add("descri", "1"); postParameters.Add("campo", "Res_Int_BCRA"); var html = new Scraper(new Uri("http://www.bcra.gov.ar/estadis/es010100.asp"), Encoding.ASCII, "http://www.bcra.gov.ar/estadis/es010100.asp?descri=1&fecha=Fecha_Serie&campo=Res_Int_BCRA").GetNodes(HttpMethod.Post, postParameters); var table = html.CssSelect("table").First(); var filas = table.CssSelect("tr").Skip(1).Take(10); var lista = new List <ReservasItem>(); foreach (var htmlNode in filas) { var tds = htmlNode.CssSelect("td").ToList(); var fi = tds[0].InnerText.Split('/'); var fecha = new DateTime(int.Parse(fi[2]), int.Parse(fi[1]), int.Parse(fi[0])); var monto = int.Parse(tds[1].InnerText); lista.Add(new ReservasItem { Fecha = fecha, Monto = monto, }); } return(new ReservasModel { Actualizacion = DateTime.UtcNow, Lista = lista, }); }
public static DivisaModel GetRofexModel() { var divisas = new List <DivisaViewModel>(); HtmlNode html = new Scraper(new Uri("http://www.rofex.com.ar/"), Encoding.UTF7).GetNodes(); var cierre = html.CssSelect("#cierre_monedas"); var tabla = cierre.CssSelect("table tr").Skip(1); foreach (var htmlNode in tabla) { var tds = htmlNode.CssSelect("td").ToArray(); var nombre = tds[0]; var compra = tds[1]; var venta = tds[1]; var variacion = tds[3]; divisas.Add(new DivisaViewModel { Nombre = nombre.InnerText, Simbolo = "U$S", ValorCompra = compra.InnerText.Remove(compra.InnerText.Length - 1), ValorVenta = venta.InnerText.Remove(venta.InnerText.Length - 1), Variacion = variacion.InnerText, }); } var result = new DivisaModel { Actualizacion = DateTime.Now, Divisas = divisas, }; return(result); }
public static DivisaModel GetTasasModel() { var divisas = new List <DivisaViewModel>(); HtmlNode html = new Scraper(new Uri("http://www.ambito.com/economia/mercados/tasas/"), Encoding.UTF7).GetNodes(); string ultimo; string cierreAnterior; string variacion; try { ultimo = html.CssSelect("div.columna1 div.ultimo big").FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna1 div.cierreAnterior big").FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna1 div.variacion big").FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "BADLAR ENTIDADES PRIVADAS EN $", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } try { ultimo = html.CssSelect("div.columna2 div.ultimo big").FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna2 div.cierreAnterior big").FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna2 div.variacion big").FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "CALL A 1 DÍA ENTIDADES DE 1º LÍNEA", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } try { ultimo = html.CssSelect("div.columna3 div.ultimo big").FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna3 div.cierreAnterior big").FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna3 div.variacion big").FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "CALL A 1 DÍA ENTIDADES DE 2º LÍNEA", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } try { ultimo = html.CssSelect("div.columna1 div.ultimo big").Skip(1).Take(1).FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna1 div.cierreAnterior big").Skip(1).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna1 div.variacion big").Skip(1).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "BAIBAR PROMEDIO PONDERADO EN $", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } try { ultimo = html.CssSelect("div.columna2 div.ultimo big").Skip(1).Take(1).FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna2 div.cierreAnterior big").Skip(1).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna2 div.variacion big").Skip(1).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "BAIBOR EN $ A 6 MESES", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } try { ultimo = html.CssSelect("div.columna3 div.ultimo big").Skip(1).Take(1).FirstOrDefault().InnerText; cierreAnterior = html.CssSelect("div.columna3 div.cierreAnterior big").Skip(1).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.columna3 div.variacion big").Skip(1).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "ENCUESTA PLAZO FIJO 30 DÍAS EN $", ValorCompra = ultimo, ValorVenta = cierreAnterior, Variacion = variacion, Actualizacion = DateTime.UtcNow.ToLongDateString(), Simbolo = "%", }); } catch { } var result = new DivisaModel { Actualizacion = DateTime.Now, Divisas = divisas, }; return(result); }
public static DivisaModel GetModel() { var divisas = new List <DivisaViewModel>(); HtmlNode html = new Scraper(new Uri("http://www.ambito.com/economia/mercados/monedas/dolar/"), Encoding.UTF7).GetNodes(); var compra = html.CssSelect("div.bonosPrincipal div.ultimo big").FirstOrDefault().InnerText; var venta = html.CssSelect("div.bonosPrincipal div.cierreAnterior big").FirstOrDefault().InnerText; var variacion = html.CssSelect("div.bonosPrincipal div.variacion big").FirstOrDefault().InnerText; var fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").FirstOrDefault().InnerText; var variacionOficial = variacion; var fechaOficial = fecha; var compraOficial = compra; var ventaOficial = venta; divisas.Add(new DivisaViewModel { Nombre = "Dólar", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); compra = html.CssSelect("div.bonosPrincipal div.ultimo big").Skip(1).FirstOrDefault().InnerText; venta = html.CssSelect("div.bonosPrincipal div.cierreAnterior big").Skip(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.bonosPrincipal div.variacion big").Skip(1).FirstOrDefault().InnerText; fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").Skip(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "Dólar Blue", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); try { compra = html.CssSelect("div.bonosPrincipal div.ultimo big").Skip(2).Take(1).FirstOrDefault().InnerText; venta = html.CssSelect("div.bonosPrincipal div.cierreAnterior big").Skip(2).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.bonosPrincipal div.variacion big").Skip(2).Take(1).FirstOrDefault().InnerText; fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").Skip(2).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "Mayorista", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); } catch { } try { compra = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Take(1).FirstOrDefault().InnerText; venta = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.bonosPrincipal div.variacion big").Take(1).FirstOrDefault().InnerText; fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "Dólar Soja", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); } catch { } try { compra = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Skip(1).Take(1).FirstOrDefault().InnerText; venta = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Skip(1).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.bonosPrincipal div.variacion big").Skip(1).Take(1).FirstOrDefault().InnerText; fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").Skip(1).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "Contado con liquidación", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); } catch { } try { compra = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Skip(2).Take(1).FirstOrDefault().InnerText; venta = html.CssSelect("div.bonosPrincipal div.cierreAnteriorUnico big").Skip(2).Take(1).FirstOrDefault().InnerText; variacion = html.CssSelect("div.bonosPrincipal div.variacion big").Skip(2).Take(1).FirstOrDefault().InnerText; fecha = html.CssSelect("div.bonosPrincipal div.dolarFecha big").Skip(2).Take(1).FirstOrDefault().InnerText; divisas.Add(new DivisaViewModel { Nombre = "Dólar Bolsa", Simbolo = "U$S", ValorCompra = compra, ValorVenta = venta, Variacion = variacion, Actualizacion = fecha, }); } catch { } var result = new DivisaModel { Actualizacion = DateTime.Now, Divisas = divisas, }; return(result); }
public static BicicletasStatusModel GetModel() { IList <BicicletaEstacion> estaciones = new List <BicicletaEstacion>(); HtmlNode html = new Scraper(new Uri("http://bicis.buenosaires.gob.ar/mapa.aspx")).GetNodes(); var cssSelect = html.CssSelect("script"); var script = cssSelect.Last().InnerText; foreach (var posta in script.Split(new[] { "google.maps.LatLng(" }, StringSplitOptions.RemoveEmptyEntries).Skip(2)) { var a = posta.Split(new[] { "),clickable" }, StringSplitOptions.RemoveEmptyEntries); //-34.592308,-58.37501 string arg0 = a[0]; var lat = double.Parse(arg0.Split(',')[0].Trim(), NumberStyles.Any, CultureInfo.InvariantCulture); var lon = double.Parse(arg0.Split(',')[1].Trim(), NumberStyles.Any, CultureInfo.InvariantCulture); string arg01 = posta.Split(new[] { "google.maps.InfoWindow({content:'" }, StringSplitOptions.RemoveEmptyEntries)[1]; string arg1 = arg01.Split(new[] { "',maxWidth:120}" }, StringSplitOptions.RemoveEmptyEntries)[0]; var arg2 = arg1.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries); string nombre; string estado; string horario; int cantidad; if (arg2.Length == 4) { //<div style="height:100px;"><span class="style1">RETIRO //<br>Cerrado. Horario de atención: Lun a Vie de 8 a 20. Sáb 9 a 15.</span> //<br><span class="style2">Cant. Bicicletas disponibles: 8</span><br></div> nombre = arg2[0].Split('>')[2].Trim().ToUpperInvariant(); estado = arg2[1].Split('.')[0].Trim(); horario = arg2[1].Split(':')[1].Split('<')[0].Trim(); cantidad = int.Parse(arg2[2].Split(':')[1].Split('<')[0].Trim()); } else { //<div style="height:100px;"><span class="style1">RETIRO</span> //<br><span class="style2">Cant. Bicicletas disponibles: 2</span><br></div> nombre = arg2[0].Split('>')[2].Split('<')[0].Trim().ToUpperInvariant(); cantidad = int.Parse(arg2[1].Split(':')[1].Split('<')[0].Trim()); estado = GetEstadoByCantidad(cantidad); horario = string.Empty; } var estacion = new BicicletaEstacion { Latitud = lat, Longitud = lon, Nombre = nombre, Estado = estado, Horario = horario, Cantidad = cantidad }; estaciones.Add(estacion); } return(new BicicletasStatusModel { Actualizacion = DateTime.UtcNow, Estaciones = estaciones, }); }