Menu

Leer el HTML de una página

Enero 29, 2011 - ASP.NET

Introducción

Obtener contenidos de la web es muy habitual inclusive hay ciertos sitios o servicios que nos ofrecen información valiosa pero literalmente ‘impresas’ en la página donde esta el servicio, esta vez les mostrare como descargar el HTML de una página cualquiera en unas cuantas líneas de código.

Resultado

He aquí el resultado que obtendremos de implementar el código

Requerimientos

El ejemplo visto en la imgane de arriba utilicé:

La teoría

La clase WebClient

Esta clase disponible desde el .NET Framework 2.0, nos expone una serie de métodos que nos permite interactuar con un recurso, tiene métodos para enviar datos y otros para descargar, en nuestro caso usaremos el método DownloadData que descarga datos de un recurso especificado y devuelve un array tipo Byte. Si quieres obtener más información de la clase WebClient mira la documentación de MSDN.

El código

En verdad realizar la descarga de la página y poder visualizar el código consiste en dos pasos, descargar la página y luego transformarla a algo que podamos entender, recuerda que el método que usamos de la clase WebClient nos devuelve un arreglo de tipo Byte.

Descargando los datos

Para descargar los datos es necesario utilizar una instancia de la clase WebClient pasando en su constructor la url que queremos descargar, en mi caso usé google.com como ejemplo.

 WebClient Cliente = new WebClient();
 Byte[] Array;
 Array = Cliente.DownloadData("http://www.google.com");
 

Entendiendo los datos

Hemos descargado la página, no ha sido difícil eh?, pero si observan el resultado del array es algo inentendible para humanos (Por lo menos para mi) entonces es necesario convertir los datos de tipo Byte a algo que podamos leer, de esto se encarga la clase UTF8Encoding y su método GetString.

UTF8Encoding Encoding = new UTF8Encoding();
lblHTML.Text = Encoding.GetString(Array);

Poniendo todo junto

El código completo de el tutorial es este, por cierto no olviden importar los namespaces de System.Text y System.Net.

WebClient Cliente = new WebClient();
Byte[] Array;
UTF8Encoding Encoding = new UTF8Encoding();
Array = Cliente.DownloadData("http://www.google.com");
lblHTML.Text = Encoding.GetString(Array);

Conclusión

Como hemos visto ha sido tremendamente fácil descargar el código fuente de una página desde .NET, ya depende de uds. las operaciones a realizar con los datos, se me ocurre por ejemplo navegar dentro del documento para obtener algún valor, o porque no, un programa para descragar sitios y poder verlos offline, en fin las posibilidades son muchas y queda a su disposicion.

Happy coding!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *