2010-10-16 556 views

Respuesta

30
wget --spider --recursive --no-verbose --output-file=wgetlog.txt http://somewebsite.com 
sed -n "[email protected]\+ URL:\([^ ]\+\) .\[email protected]\[email protected]" wgetlog.txt | sed "[email protected]&@\&@" > sedlog.txt 

Esto crea un archivo llamado sedlog.txt que contiene todos los enlaces que se encuentran en el sitio web especificado. Puede usar PHP o un script de shell para convertir el mapa de sitio del archivo de texto en un mapa del sitio XML. Modifique los parámetros del comando wget (accept/reject/include/exclude) para obtener solo los enlaces que necesita.

+0

+1 No pude usarlo así ya que me estaba dando un montón de errores (probablemente debido a diferentes versiones de wget/sed). Pero una vez que hice algunos ajustes, funcionó a las mil maravillas. ¡Gracias! – Julian

+2

Debe agregar un pequeño retraso entre las solicitudes usando '--wait = 1', de lo contrario, podría afectar el rendimiento del sitio. – Liam

1

Puede utilizar este script en perl para hacer el truco:

+0

Se generará escaneando el sistema de archivos pero no se "rastreará". Los sitios que quiero arañar son dinámicos. –

Cuestiones relacionadas