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