
Estoy intentando descargar recursivamente un directorio usando este comando:
wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…
El script se ejecuta cada 15 minutos, por lo que quiero reducir las solicitudes tanto como sea posible. Vi que hay muchas solicitudes que ?C=M;O=A
se originan en los botones modificadores de orden del directorio comoNombre,FechaoTamaño(ejemplo). ¿Cómo puedo evitar que se produzcan estas solicitudes?
Respuesta1
Como se señala enuna respuestaa una pregunta relacionada,documentación de wgetdice:
Tenga en cuenta también que las cadenas de consulta (cadenas al final de una URL que comienzan con un signo de interrogación ('?') no se incluyen como parte del nombre de archivo para las reglas de aceptación/rechazo, aunque en realidad contribuirán al nombre elegido para el archivo local. Se espera que una versión futura de Wget proporcione una opción para permitir la comparación con cadenas de consulta.
Probablemente tendrás que utilizar una herramienta diferente comopavukohttrack. Estos dos programas proporcionan un filtrado de nombres que es más sólido que el de wget.
Como alternativa, puedes descargar el directorio usando wget y filtrarlo luego.
find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete
Respuesta2
Usaría httrack si intentas reflejar un directorio de archivos *.pdf. Un comando como este funcionó para mí:
% httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update
Puede consultar más información sobre httrack en las siguientes URL:
- Guía básica de usuarios
- Descargar enlaces
- comandos de ejemplo
- Artículo de blog con ejemplos adicionales
Debo mencionar una ventaja importante de usar httrack sobre wget es que httrack solo descargará archivos que hayan cambiado/actualizado.