Generar Sitemap por URL usando C#

Buenos días. Necesito escribir un generador de Sitemap usando C#. Ya escribí un generador para el sitio local donde ingresa una ruta a su proyecto (sitio) y mi programa encontrará todas las páginas web en este directorio y subdirectorios, y las escribirá en el archivo Sitemap.


Ahora necesito hacer lo mismo pero para las rutas de URL. Todo lo que puedo ingresar es una dirección URL, y mi programa tiene que encontrar todas las páginas web de este sitio y escribirlas en el mapa del sitio. ¿Cómo puedo organizar tal búsqueda de páginas? ¿O puede ser que alguien hizo algo similar? De antemano gracias por su ayuda.

preguntado el 03 de mayo de 12 a las 10:05

posible duplicado de Crawler en C# o en VB.net -

1 Respuestas

Lo que está buscando es un rastreador web o un rastreador de sitios. Esencialmente, lo que hacen es obtener el código fuente de cualquier sitio web que desee, eliminar todas las etiquetas html en exceso, pero no las etiquetas de hipervínculo. Esto dejará un montón de enlaces que el programa usará para 'rastrear' a más páginas. Aquí hay un resumen de cómo funciona: (No daré ningún código, pero profundizaré en cómo hacer uno)

Un sitio web sencillo:

<html>
<a href="www.somewebsite.com/link1.html">Link 1</a><br />
<a href="www.somewebsite.com/link2.html">Link 2</a><br />
<a href="www.somewebsite.com/link3.html">Link 3</a>
</html>

Nuestro programa obtendrá el código fuente, pero eliminará todas las etiquetas inútiles, dejando:

<a href="www.somewebsite.com/link1.html">Link 1</a>
<a href="www.somewebsite.com/link2.html">Link 2</a>
<a href="www.somewebsite.com/link3.html">Link 3</a>

Luego solo obtendrá el atributo href="" y dejará las URL del sitio web:

www.somewebsite.com/link1.html
www.somewebsite.com/link2.html
www.somewebsite.com/link3.html

Luego, el programa obtendrá el código fuente de cada uno de esos sitios web, haciendo lo mismo una y otra vez. Puede ir aún más lejos y eliminar todos los enlaces que utilizan una solicitud GET, es decir:

www.somewebsite.com/link1?id=1

Y los que contienen enlaces a otros sitios web.

Una vez que haya viajado a todos los sitios web y obtenido todos los enlaces, puede almacenar la información en un formato similar a un árbol, tal vez en XML.

¡Espero que esto ayude!

contestado el 03 de mayo de 12 a las 11:05

¡Muchos gracias! Me diste la dirección =) - Stepanian Yura

Creo que debería aceptar esta respuesta o puede agregar la suya propia y aceptarla: melvas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.