
He leído el manual de Wget, pero desafortunadamente no parece solucionar mi problema, por lo que estaría muy agradecido si alguien pudiera ofrecerme un poco de ayuda.
Tenemos un sitio web, (digamos) sitio web.com, que enlaza directamente a (digamos) sitio web.com/1/, sitio web.com/2/, ... etc.
Ahora cada página website.com/r/, donde r es un número entero, enlaza con varios documentos pdf. En lugar de estar ubicados en website.com/r/doc-i.pdf, lo cual sería conveniente, todos están ubicados en website.com/files/doc-i.pdf.
Por lo tanto, cuando ejecuto el comando wget -r -l 2 -A pdf website.com
, por supuesto terminaré con una carpeta grande llamada "archivos", con todos los documentos pdf que contiene.
Sin embargo, preferiría que estuvieran organizados en diferentes carpetas denominadas 1, 2, ..., n, que correspondan a la página desde la que se descargaron. Dado que descargaré en total alrededor de 10.000 archivos pdf, preferiría no tener que hacerlo manualmente.
Entonces, ¿cómo le digo a Wget que organice los archivos, no según la estructura del directorio del sitio web, sino según la ruta que tomó para llegar al archivo?
Espero que mi explicación sea clara y que esto no sea demasiado difícil de lograr.
Respuesta1
(no probado) Lo siguiente necesita algunos ajustes, es solo una idea general:
### get level1
wget -r -l website.com/
#### for each html file otained,
for a in $(find website.com -name '*.html' )
do
### get level 2 but prefix it with the base name
b=$(basename $a)
wget -P $b -r -l 1 -A pdf http://$a
done
- Probablemente el hallazgo necesitará algo de tunning.
- tal vez agregue algo como
mv $b/website.com/files FINAL/$b
reducir los niveles