miércoles, 21 de abril de 2021

Desarrollar un Crawler simple con C#

 

Lo primero que tenemos que hacer es un proyecto nuevo con Visual Studio. En mi caso vamos a usar Visual Studio 2019. El proyecto lo vamos a desarrollar usando C#. Vamos a hacer un Console app el cual le vamos a llamar SimpleCrawler.



El proyecto va a hacer. netcore 3.1

Cuando el proyecto esta listo vamos a buscar en NuGet el paquete HtmlAgilityPack y lo vamos a instalar. 



Con este paquete instalado lo primero que vamos a hacer en la clase Main es importar las librerías necesarias para crear nuestro crawler


Ahora vamos a ver como se construye el código para ir navegando en el contenido de la página web. 



Ahora, en la línea 12 tenemos que copiar el URL de la página web que deseamos escanear. Con esto vamos a crear un cliente Http para leer el documento web como se puede ver en la línea 14. Ya en la línea 16 obtenemos el contenido del documento de Html. Este al final lo podemos obtener como si fuera una variable string.

Ahora si ya con esto listo en la línea 18 creamos un objeto de tipo HtmlDocument del paquete AgilityPack. El cual nos va a permitir convertir el documento que tenemos de tipo string a un objeto de tipo AgilityPack. Esto lo cargamos en la línea 19.

Para poder leer todos los links usamos la línea 21 el cual usa el document que creamos anteriormente y cargamos todos los nodos. De estos nodos que cargamos vamos a seleccionar únicamente los anchor (links).

En la línea 23 vamos a recorrer todos los resultados encontrados en la línea 21 y vamos a ir uno por uno mostrando el contenido de cada uno de estos. Usando la propiedad OuterHtml que tenemos en la línea 24.

Lo que nos da como resultado lo siguiente 



Aquí podemos ver todos los links que tiene la página web. Ahora cada uno podría hacer lo que necesita con estos links.

Podemos recordar que con este paquete podemos buscar cualquier tipo de nodo que tenemos en los sitios web.

¿Qué es un Crawler? 


Etiquetas: , , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio