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;
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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;
        }
Beispiel #5
0
        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;
        }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        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;
        }