
Eu li o manual do Wget, mas infelizmente ele não parece resolver o meu problema, então ficaria muito grato se alguém pudesse me oferecer um pouco de ajuda.
Temos um site, (digamos) website.com, que tem links diretos para (digamos) website.com/1/, website.com/2/, ... etc.
Agora, cada página website.com/r/, onde r é um número inteiro, vincula-se a vários documentos PDF. Em vez de estarem localizados em website.com/r/doc-i.pdf - o que seria conveniente - todos estão localizados em website.com/files/doc-i.pdf.
Assim, quando eu executar o comando wget -r -l 2 -A pdf website.com
, é claro que acabarei com uma grande pasta chamada "arquivos", com todos os documentos PDF contidos nela.
Eu preferiria, entretanto, que eles fossem organizados em pastas diferentes denominadas 1, 2, ..., n, que correspondam à página da qual foram baixados. Como irei baixar um total de cerca de 10.000 arquivos PDF, prefiro não ter que fazer isso manualmente.
Então, como digo ao Wget para organizar os arquivos, não pela estrutura de diretórios do site, mas pela rota que foi necessária para chegar ao arquivo?
Espero que a minha explicação seja clara e que isto não seja muito difícil de conseguir.
Responder1
(não testado) O seguinte precisa de alguns ajustes, é apenas uma ideia geral:
### 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
- provavelmente a descoberta precisará de algum ajuste
- talvez adicione algo como
mv $b/website.com/files FINAL/$b
reduzir os níveis