Pop

Bot web Scraping - Web ESPN - Parte 6

6. Web Scraping de la página ESPN

  •  En este capítulo del curso de programación en c# con visual studio 2017 guardaremos los equipos en nuestra base de datos llamando a un procedimiento almacenado desde nuestra aplicación de consola.Os dejo nuestro diseño de tablas:

  • Para poder guardar los datos también veremos como leerlos de una manera fácil de los fichero que tenemos almacenados. En el vídeo os lo cuento con más detalle:
  • Os dejo el procedimiento almacenado utilizado en el vídeo para almacenar los equipos:

CREATE PROCEDURE [dbo].[GuardarEquiposNBA](
@Equipo varchar(500),
@Acrononimo varchar(50)
)
AS
BEGIN

SET NOCOUNT ON;


IF(SELECT count(*) FROM  EQUIPOS where Acronimo=@Acrononimo)=0
BEGIN
INSERT INTO dbo.EQUIPOS(Equipo,Acronimo) VALUES(@Equipo,@Acrononimo)
END
END


  • Código utilizado para guardar los equipos en la base de datos:
   static void guardarEquipos()
        {

            SqlConnection conexion = null;
    

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

            foreach (FileInfo archivo in archivos)
            {
                HtmlDocument doc = new HtmlDocument();
                HtmlNode.ElementsFlags["br"] = HtmlElementFlag.Empty;
                doc.OptionWriteEmptyNodes = true;
                doc.Load(archivo.FullName);

                string selector = "//li[@class='team-name']";
                HtmlNodeCollection nodoColecion = doc.DocumentNode.SelectNodes(selector);

                if (nodoColecion != null)
                {
                    foreach (HtmlNode nodo in nodoColecion)
                    {
                        conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
                        try
                        {
                          
                            conexion.Open();

                            SqlCommand Comm = conexion.CreateCommand();
                            Comm.CommandText = "dbo.GuardarEquiposNBA";
                            Comm.CommandType = CommandType.StoredProcedure;
                            Comm.Parameters.Add("@Equipo", SqlDbType.VarChar, 500).Value = dameEquipo(nodo.InnerText.ToUpper());
                            Comm.Parameters.Add("@Acrononimo", SqlDbType.VarChar, 50).Value = nodo.InnerText;
                            Comm.ExecuteNonQuery();
                           
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                            Console.ReadLine();


                        }
                        finally
                        {
                            conexion.Close();
                            conexion.Dispose();
                        }


                    }

                }


            }
            Console.WriteLine("Operacion completada");
            Console.ReadLine();


        }

        static string dameEquipo(string equipo)
        {
            string equipoCompleto = String.Empty;
            switch (equipo)
            {
                case "BOS":
                    equipoCompleto = "Boston Celtics";
                    break;
                case "BKN":
                    equipoCompleto = "Brooklyn Nets";
                    break;
                case "NY":
                    equipoCompleto = "New York Knicks";
                    break;
                case "PHI":
                    equipoCompleto = "Philadelphia 76ers";
                    break;
                case "TOR":
                    equipoCompleto = "Toronto Raptors";
                    break;
                case "CHI":
                    equipoCompleto = "Chicago Bulls";
                    break;
                case "CLE":
                    equipoCompleto = "Cleveland Cavaliers";
                    break;
                case "DET":
                    equipoCompleto = "Detroit Pistons";
                    break;
                case "IND":
                    equipoCompleto = "Indiana Pacers";
                    break;
                case "MIL":
                    equipoCompleto = "Milwaukee Bucks";
                    break;
                case "DEN":
                    equipoCompleto = "Denver Nuggets";
                    break;
                case "MIN":
                    equipoCompleto = "Minnesota Timberwolves";
                    break;
                case "OKC":
                    equipoCompleto = "Oklahoma City Thunder";
                    break;
                case "POR":
                    equipoCompleto = "Portland Trail Blazers";
                    break;
                case "UTAH":
                    equipoCompleto = "Utah Jazz";
                    break;
                case "GS":
                    equipoCompleto = "Golden State Warriors";
                    break;
                case "LAC":
                    equipoCompleto = "LA Clippers";
                    break;
                case "LAL":
                    equipoCompleto = "Los Angeles Lakers";
                    break;
                case "SAC":
                    equipoCompleto = "Sacramento Kings";
                    break;
                case "PHX":
                    equipoCompleto = "Phoenix Suns";
                    break;
                case "ATL":
                    equipoCompleto = "Atlanta Hawks";
                    break;
                case "CHA":
                    equipoCompleto = "Charlotte Hornets";
                    break;
                case "MIA":
                    equipoCompleto = "Miami Heat";
                    break;
                case "ORL":
                    equipoCompleto = "Orlando Magic";
                    break;
                case "WSH":
                    equipoCompleto = "Washington Wizards";
                    break;
                case "DAL":
                    equipoCompleto = "Dallas Mavericks";
                    break;
                case "HOU":
                    equipoCompleto = "Houston Rockets";
                    break;
                case "MEM":
                    equipoCompleto = "Memphis Grizzlies";
                    break;
                case "NO":
                    equipoCompleto = "New Orleans Pelicans";
                    break;
                case "SA":
                    equipoCompleto = "San Antonio Spurs";
                    break;
                case "NJ":
                    equipoCompleto = "New Jersey Nets";
                    break;
                case "VAN":
                    equipoCompleto = "Vancover Grizlies";
                    break;
                case "SEA":
                    equipoCompleto = "Seattle";
                    break;
                default:
                  break;
            }
            return equipoCompleto;
          }

    }

No hay comentarios:

Publicar un comentario

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...