Pop

Bot web Scraping - Web ESPN - Parte 5

5. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017, empezaremos a preparar el entorno para poder guardar en nuestra base de datos los ficheros que tenemos almacenados en nuestro disco.Obtenidos previamente de la página de la ESPN. 
  • Recordar que en esta base de datos guardaremos algunos de los datos obtenidos para luego consultarlos en una aplicación que nos de las estadísticas que nosotros queramos consultar.De momento en este vídeo os cuento las modificaciones que he hecho  en nuestra aplicación para convertirlo en un aplicación con un menú que nos permita elegir entre varias opciones.Además dejo preparado el programa para ir leyendo los casi 2000 fichero que tenemos almacenados.
  • En el vídeo os lo cuento con más detalle:



  • Os dejo el código visto en el vídeo:

  1. Método con el que presentamos el menú en pantalla al usuario:
 static void Menu()
        {

            char opcion;



            do
            {
                Console.Clear();
                Console.WriteLine("\t************************************************");
                Console.WriteLine("\t  1- Recopilar datos              ");
                Console.WriteLine("\t  2- Guardar equipos                 ");
                Console.WriteLine("\t  0- Salir             ");
                Console.WriteLine("\t************************************************");
                Console.Write("Opcion: ");
                do
                {
                    opcion = Console.ReadKey(true).KeyChar;
                } while (opcion < '0' || opcion > '8');
                Console.WriteLine(opcion + "\n");

                switch (opcion)
                {
                    case '1':
                        try
                        {
                            recopilarDatos();
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                        break;
                    case '2':
                        try
                        {
                            guardarEquipos();
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                            Console.ReadLine();
                        }
                        break;



                }


            } while (opcion != '0');
        }

2. Método que recorre los fichero en una ruta determinada:

   static void guardarEquipos()
        {
            DirectoryInfo directorio = new DirectoryInfo(@"D:\JugadoresNBA\");
            FileInfo[] archivos = directorio.GetFiles();
            String linea = String.Empty;

            foreach (FileInfo archivo in archivos)
            {
                StreamReader file = new StreamReader(archivo.FullName);
                while ((linea = file.ReadLine()) != null)
                {
                   //TRATAR LOS DATOS System.Console.WriteLine(linea);

                }

                file.Close();
            }


        }

Bot web Scraping - Web ESPN - Parte 4 🤔

4. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017 acabaremos de descargar los datos de los jugadores de la nba con nuestro bot. Además  empezaremos a pensar el diseño de nuestra base de datos para almacenar esta información.
  • En esta base de datos guardaremos algunos de los datos obtenidos para luego consultarlos en una aplicación que nos de las estadísticas que nosotros queramos consultar.En principio la idea que tengo es crear 4 tablas: una para guardar las estadísticas( puntos, rebotes, tapones ... ),otra para guardar los equipos , otra que guarda los datos del jugador (nombre, posición, altura....) y una última tabla que relacione estas tres tablas. Os dejo una imagen de como quedaría el diseño:



  • Os dejo el vídeo donde podemos ver lo que acabo de contar:

Bot web Scraping - Web ESPN - Parte 3 ✔

3. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017 continuamos con la técnica conocida como web scraping.  A grandes rasgos podemos decir que se trata de una técnica para extraer información de sitios web, es  un proceso para  recopilar información de forma automática de páginas que encontremos publicadas en la red.
  • En esta entrada volcamos de manera masiva a nuestra máquina los datos de unos 5000 jugadores. Como comentamos en el capítulo anterior buscamos en la página un div con  un  class que se llama 'player-bio': div[@class='player-bio'] , buscamos también la etiqueta h1 para guardar el nombre del jugador y por último buscamos otro div cuya clase sea 'mod-container mod-table mod-player-stats': div[@class='mod-container mod-table mod-player-stats'] . Una vez encontremos estos valores escribimos los n ficheros en disco mediante peticiones a la páginas que contienen la información de cada jugador dentro de un bucle while.
  • Os dejo el vídeo donde podemos ver lo que acabo de contar:

  • Os dejo el código visto en el vídeo:
static void Main(string[] args)
        {

            WebClient client = new WebClient();
            int contador = 1689;
            try
            {
                while (contador < 1000000)
                {
                    HtmlDocument doc = new HtmlDocument();
                    HtmlNode.ElementsFlags["br"] = HtmlElementFlag.Empty;
                    doc.OptionWriteEmptyNodes = true;

                    var web = HttpWebRequest.Create("http://www.espn.com/nba/player/_/id/" + contador.ToString() + "/");
                    Stream stream = web.GetResponse().GetResponseStream();
                    doc.Load(stream);

                    HtmlNode nombreJugador = doc.DocumentNode.SelectSingleNode("//body//h1");
                    StreamWriter sw = new StreamWriter("D:\\JugadoresNBA\\" + nombreJugador.InnerText + ".html", false);

                    string selector = "//div[@class='player-bio']";
                    HtmlNodeCollection nodoColecionInicio = doc.DocumentNode.SelectNodes(selector);
                    if (nodoColecionInicio != null && nodoColecionInicio.Count > 0)
                        foreach (HtmlNode node in nodoColecionInicio)
                        {
                            sw.WriteLine(node.InnerHtml);
                        }

                    selector = "//div[@class='mod-container mod-table mod-player-stats']";
                    HtmlNodeCollection nodoColecion = doc.DocumentNode.SelectNodes(selector);
                    if (nodoColecion != null && nodoColecion.Count > 0)
                        foreach (HtmlNode nodo in nodoColecion)
                        {
                            sw.WriteLine("ESTADISTICAS:");
                            sw.WriteLine(nodo.InnerHtml);
                        }

                    Console.WriteLine(contador.ToString());
                    sw.Close();
                    sw.Dispose();
                    contador++;
                    System.Threading.Thread.Sleep(3000);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

Aprende web Scraping - Web ESPN - Parte 2 👀

2. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017 continuamos con la técnica conocida como web scraping.  A grandes rasgos podemos decir que se trata de una técnica para extraer información de sitios web, se trata de un proceso para  recopilar información de forma automática de páginas que encontremos publicadas en la red.
  • En esta entrada comenzaremos ha obtener los datos referentes a las estadísticas de los jugadores. Para ello, utilizando la herramienta para desarrolladores que traen integrada los diferentes navegadores vemos como se llaman los componentes html de la paginas que queremos descargarnos a nuestra máquina. En nuestro caso las páginas que tienen una  estructura de url similar a:  http://www.espn.com/nba/player/_/id/1/  tienen un div   con  un  class que se llama   'player-bio':  div[@class='player-bio'] . Basándonos en esto podemos empezar  nuestro bot.
  • Os dejo el vídeo donde podemos ver lo que acabo de contar:

  • Os dejo el código visto en el vídeo:

        static void Main(string[] args)
        {

            WebClient client = new WebClient();
            HtmlDocument doc = new HtmlDocument();
            HtmlNode.ElementsFlags["br"] = HtmlElementFlag.Empty;
            doc.OptionWriteEmptyNodes = true;

            var web = HttpWebRequest.Create("http://www.espn.com/nba/player/_/id/1/");
            Stream stream = web.GetResponse().GetResponseStream();
            doc.Load(stream);

            foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='player-bio']"))
            {
                Console.WriteLine(node.InnerHtml);
            }

            Console.ReadLine();
                
       }
    }

Aprende web Scraping - Web ESPN - Parte 1

1. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017 vamos ha empezar con la técnica conocida como web scraping.  A grandes rasgos podemos decir que se trata de una técnica para extraer información de sitios web, se trata de un proceso para  recopilar información de forma automática de páginas que encontremos publicadas en la red. 
  • Antes de continuar  con la entrada del blog comentaros que en España el web scraping en sí, es legal. Es importante que entendamos que el problema no está en el uso de los crawlers o bots  para rastrear la red, sino en el uso que damos de los datos conseguidos. Como en nuestro caso el objetivo es simplemente aprender ha construir un bot para realizar esta tarea, y no le vamos a dar ningún uso comercial no creo que haya ningún problema. 
  • Una vez aclaradas estás cuestiones paso a comentaros lo que nos espera en las siguientes semanas en nuestro blog :
  1. Crearemos un programa que rastree la web  ESPN para obtener estadísticas de los jugadores.
  2. Una vez hecho esto guardaremos en nuestro disco duro un fichero por cada jugador encontrado. Como esto se trata de un ejemplo sólo me bajaré la información de unos 5000 jugadores.
  3.  Una vez tengamos almacenada la información en disco definir tablas en una base de datos para guardar la información.
  4. Volcar la información de los ficheros a nuestras base de datos.
  5. Crear un página web o aplicación de escritorio donde consultar las estadísticas.
  • Os dejo un enlace al vídeo donde os cuento la película:

Creando bot monitorización en c# - Capítulo 4

4. Creando bot monitorización en c# 

  •  En este capítulo del curso de programación en c# con visual studio 2017 finalizamos  la construcción de nuestro bot para monitorizar los cambios que se produzcan en un página determinada. Básicamente queremos saber cuando cambia un texto en una zona determinada de una página. 
  • En este capítulo veremos como hacer que una aplicación se ejecute con la periodicidad que nosotros le indiquemos.Para ello hacemos uso de las tareas programadas.Las tareas programadas son aquellas que usted puede configurar para que cualquier proceso, programa o archivo se ejecute el tiempo o fecha que usted desee. Los pasos a seguir son los siguientes:
  • Abrimos el programador de tareas:



  • Nos encontraremos con algo similar a esto:

  • Ahora pulsamos el botón derecho para crear una nueva tarea:



  • Nos aparecerá una ventana similar a la siguiente  donde configuraremos las características de la tarea:



  • Seleccionamos el archivos que queremos que se ejecute en la pestaña acciones:

  • Una vez hecho esto sólo nos queda configurar la periocidad. Tenéis la información al completo en el vídeo.

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...