protected void ShowColectivo(List <string> lineas, bool regreso = false) { string result = string.Empty; CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture; TextInfo textInfo = cultureInfo.TextInfo; Parallel.ForEach(lineas, linea => { HtmlNode html = new Scraper(Encoding.UTF7).GetNodes(new Uri("http://www.omnilineas.com.ar/buenos-aires/colectivo/linea-" + linea + "/" + (regreso ? "&r=1" : ""))); var ramales = html.CssSelect("ul").ToArray()[1].CssSelect("li").ToArray(); string script = html.CssSelect("script").ToArray()[4].InnerText; var i = 0; foreach (var info in script.Split(new[] { "str2garr('" }, StringSplitOptions.RemoveEmptyEntries).Skip(1)) { string query = "INSERT INTO [GUIATBA_Transporte]" + "([ID],[TipoTransporteID],[Nombre],[Codigo],[Ramal],[Ubicacion],[DescripcionRecorrido],[Regreso])" + "VALUES (NEWID(),'{0}','Linea {1} {2}','{4}','{2}','{3}','',{5})"; var item = info.Split(new[] { "')" }, StringSplitOptions.RemoveEmptyEntries); result += string.Format(query, Colectivo.Id, textInfo.ToTitleCase(linea), ramales[i].InnerText, GetLocationsFromString(item[0]), linea, regreso ? "1" : "0") + "<br><br>"; i++; } }); Resultado = result; }
protected void ShowSubte(bool regreso = false) { string result = string.Empty; foreach (var linea in LineasSubte) { HtmlNode html = new Scraper(Encoding.UTF7).GetNodes(new Uri("http://www.omnilineas.com.ar/buenos-aires/colectivo/linea-subte-" + linea + "/" + (regreso ? "&r=1" : ""))); var ramales = html.CssSelect("ul").ToArray()[1].CssSelect("li").ToArray(); string script = html.CssSelect("script").ToArray()[4].InnerText; var i = 0; foreach (var info in script.Split(new[] { "str2garr('" }, StringSplitOptions.RemoveEmptyEntries).Skip(1)) { string query = "INSERT INTO [GUIATBA_Transporte]" + "([ID],[TipoTransporteID],[Nombre],[Codigo],[Ramal],[Ubicacion],[DescripcionRecorrido],[Regreso])" + "VALUES (NEWID(),'{0}','Linea {1}','{1}','{2}','{3}','',{4})"; var item = info.Split(new[] { "')" }, StringSplitOptions.RemoveEmptyEntries); result += string.Format(query, Subte.Id, linea, ramales[i].InnerText, GetLocationsFromString(item[0]), regreso ? "1" : "0") + "<br><br>"; i++; } } Resultado = result; }
protected void Show() { string result = string.Empty; for (int i = 1; i <= 80; i++) { HtmlNode html = new Scraper().GetNodes(new Uri(string.Format("http://www.dolarsi.com/cotizaciones_anteriores.asp?page={0}&zona=1&dia=1&mes=1&anio=2002&dia1=24&mes1=3&anio1=2013", i.ToString()))); var cssSelect = html.CssSelect("table[width=400] tr"); var count = cssSelect.Count(); var script = cssSelect.Skip(2).Take(count - 3); foreach (var htmlNode in script) { var datos = htmlNode.CssSelect("td"); var auxFecha = datos.ElementAt(0).CssSelect("div font").FirstOrDefault().InnerText.Split('/'); DateTime fecha = new DateTime(int.Parse(auxFecha[2]), int.Parse(auxFecha[1]), int.Parse(auxFecha[0])); var fechasql = string.Format("{0}-{1}-{2}", auxFecha[2], auxFecha[1], auxFecha[0]); var auxCompra = datos.ElementAt(1).CssSelect("div").FirstOrDefault().InnerText; var compra = float.Parse(auxCompra.Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture); var auxVenta = datos.ElementAt(2).CssSelect("div").FirstOrDefault().InnerText; var venta = float.Parse(auxVenta.Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture); //result += string.Format("{0} | {1} | {2} <br>", fecha.ToLongDateString(), compra, venta); result += string.Format("INSERT INTO [DOLAR_Historico] ([ID],[date],[valorCompra],[valorVenta],[tipoMoneda]) VALUES (NEWID(),'{0}',{1},{2},1) <br>", fechasql, compra.ToString(CultureInfo.InvariantCulture), venta.ToString(CultureInfo.InvariantCulture)); } } Resultado = result; }
protected void Show() { string result = string.Empty; HtmlNode html = new Scraper().GetNodes(new Uri("http://www.transporte.gob.ar/content/servicios-colectivos/")); IEnumerable <HtmlNode> grupos = html.CssSelect("div.recuadro_titularV2"); foreach (var grupo in grupos) { IEnumerable <HtmlNode> lineas = grupo.CssSelect("div.content_title"); foreach (var linea in lineas) { try { string titulo = linea.CssSelect("a").FirstOrDefault().InnerHtml; HtmlNode node = linea.SelectNodes("following-sibling::*").TakeWhile(tag => tag.Name == "div" && tag.Attributes["class"].Value == "content_box").FirstOrDefault(); string descripcion = node.InnerHtml.Replace("\"", "'"); var d1 = new List <string>(); var rango = RangosCategorias.GetRango(int.Parse(titulo.Split(' ')[1] .Replace("A", "") .Replace("B", "") .Replace("C", "") .Replace("D", ""))); result += "buss.Add(new Bus(\"Línea " + rango.Item1 + " a " + rango.Item2 + "\")"; result += "<br>"; result += "{"; result += "<br>"; result += " Title = \"" + titulo + "\","; result += "<br>"; //result += " Description = \"" + System.Web.HttpUtility.HtmlDecode(descripcion) + "\""; var desc = d1.ToArray(); for (int i = 0; i < desc.Length; i++) { result += " Description" + i + " = @\"" + desc[i] + "\""; } result += "<br>"; result += "});"; result += "<br><br>"; } catch (Exception e) { result += "<br><br>############################################################################################"; result += "<br>" + e.Message; result += "<br><br>############################################################################################"; } } result += "<br><br>############################################################################################"; } Resultado = result; }
protected void Show() { string result = string.Empty; HtmlNode html = new Scraper().GetNodes(new Uri("http://www.bicicletapublica.com.ar/mapa.aspx")); var cssSelect = html.CssSelect("script"); var script = cssSelect.Skip(1).FirstOrDefault().InnerText; foreach (var posta in script.Split(new[] { "new GLatLng(" }, StringSplitOptions.RemoveEmptyEntries).Skip(2)) { var a = posta.Split(new[] { "openInfoWindowHtml('" }, StringSplitOptions.RemoveEmptyEntries); //-34.592308,-58.37501 string arg0 = a[0].Split(new[] { ")," }, StringSplitOptions.RemoveEmptyEntries)[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); //<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> string arg1 = a[1].Split(new[] { "'," }, StringSplitOptions.RemoveEmptyEntries)[0]; var arg2 = arg1.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries); var nombre = arg2[0].Split('>')[2].Trim(); var estado = arg2[1].Split('.')[0].Trim(); var horario = arg2[1].Split(':')[1].Split('<')[0].Trim(); var cantidad = int.Parse(arg2[2].Split(':')[1].Split('<')[0].Trim()); var estacion = new BicicletaEstacion(); estacion.Latitud = lat; estacion.Longitud = lon; estacion.Nombre = nombre; estacion.Estado = estado; estacion.Horario = horario; estacion.Cantidad = cantidad; result += string.Format("{0} <br><br> {1} <br><br> {2} <br>", arg0, arg1, string.Empty); } Resultado = result; }
protected void Show() { string result = string.Empty; HtmlNode html = new Scraper().GetNodes(new Uri("http://www.metrovias.com.ar/V2/InfoSubteSplash.asp")); string script = html.CssSelect("script").First().InnerText; var infos = script.Split(new[] { "if" }, StringSplitOptions.RemoveEmptyEntries)[0]; foreach (var info in infos.Split(new[] { "pausecontent" }, StringSplitOptions.RemoveEmptyEntries).Skip(2)) { var linea = info.Split(new[] { "] = '" }, StringSplitOptions.RemoveEmptyEntries); result += linea[1].Replace("';", "") + "<br><br>"; } Resultado = result; }
protected void Show() { string result = string.Empty; HtmlNode html = new Scraper().GetNodes(new Uri("http://servicios.lanacion.com.ar/transito/")); var cssSelect = html.CssSelect("section.trenes"); var script = cssSelect.CssSelect("nav ul li"); List <LineaTrenModel> lineas = new List <LineaTrenModel>(); foreach (var linea in script) { var classNumber = linea.GetAttributeValue("class"); var aux = cssSelect.CssSelect("div.ramales ul." + classNumber); var ramales = aux.CssSelect("li"); List <RamalTrenModel> r = new List <RamalTrenModel>(); foreach (var ramal in ramales) { /* * <li> * Retiro-Villa Rosa<br> * <a href="#" class="normal" alt="Normal" title="Normal">Normal</a> * <span> * <b class="color">Retiro-Villa Rosa</b> * <br><b class="normal">Normal</b> * <div class="separador"></div></span></li> */ /* * <li class="transitoDescripcion"> * Retiro-Villa Rosa<br> * <a href="#" class="demora" alt="Demora" title="Demora">Demora<b class="detalleAmpliar">+</b></a> * <span> * <b class="color">Retiro-Villa Rosa</b> * <br><b class="demora">Demora</b> * <div class="separador"></div> * 18:30 hs. El seervicio se halla demorado por accidente de una persona altura Scalabrini Ortiz.</span></li> */ var ra = new RamalTrenModel(); ra.Nombre = ramal.InnerHtml.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries)[0]; ra.Estado = ramal.CssSelect("a").FirstOrDefault().InnerText.Replace("+", "").Trim(); string[] strings = ramal.InnerHtml.Split(new[] { "<div class=\"separador\"></div>" }, StringSplitOptions.RemoveEmptyEntries); ra.MasInfo = strings.Length > 1 ? strings[1].Replace("</span>", "") : ""; r.Add(ra); } var l = new LineaTrenModel(); l.Nombre = linea.CssSelect("a").FirstOrDefault().InnerText; l.Ramales = r; lineas.Add(l); } Resultado = result; }