Cómo rastrear usando wget para descargar SOLAMENTE archivos HTML (ignorar imágenes, css, js)

14

Esencialmente, quiero rastrear un sitio completo con Wget, pero lo necesito para NUNCA descargar otros activos (por ejemplo, imágenes, CSS, JS, etc.). Solo quiero los archivos HTML.

Las búsquedas de Google son completamente inútiles.

Aquí hay un comando que he probado:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Nuestro sitio es híbrido flat-PHP y CMS. Así, HTML "archivos" podría ser /path/to/page, /path/to/page/, /path/to/page.php, o /path/to/page.html.

Incluso lo he incluido, -R js,csspero aún descarga los archivos, ENTONCES los rechaza (desperdicio inútil de ancho de banda, CPU y carga del servidor).

Nathan JB
fuente
2
¿Cuál es el comando que has probado hasta ahora? Si la denominación de los archivos es coherente, debería poder usar el indicador -R. Alternativamente, puede usar la bandera --ignore-tags e ignorar el script y las etiquetas img.
ernie
Intenté usar --accept = html, pero descarga archivos CSS y luego los elimina. Quiero evitar que se descarguen. Sin embargo, una solicitud de encabezados está bien, por ejemplo, me doy cuenta Length: 558 [text/css]de los archivos que no quiero. Si pudiera detener la solicitud si el encabezado no regresa text/html, estaría eufórico.
Nathan JB

Respuestas:

13

¡El comentario de @ernie sobre --ignore-tagsllevarme por el camino correcto! Al levantar la vista --ignore-tagsen man, me di cuenta --follow-tags.

Ajuste --follow-tags=ame permitió salto img, link, script, etc.

Probablemente sea demasiado limitado para algunas personas que buscan la misma respuesta, pero en realidad funciona bien en mi caso (está bien si pierdo un par de páginas).

Si alguien encuentra una manera de permitir el escaneo de TODAS las etiquetas, pero evita wgetrechazar archivos solo después de que se descargan (deben rechazar según el nombre de archivo o el tipo de contenido del encabezado antes de la descarga), ¡aceptaré su respuesta con mucho gusto!

Nathan JB
fuente
5

¿Qué hay de agregar las opciones?

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Spir
fuente