
Estou tentando baixar recursivamente um diretório usando este comando:
wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…
O script é executado a cada 15 minutos, então quero reduzir ao máximo as solicitações. Eu vi que há muitas solicitações ?C=M;O=A
originadas dos botões modificadores de ordem de diretório, comoNome,DataouTamanho(exemplo). Como posso evitar que essas solicitações aconteçam?
Responder1
Como apontado emuma respostapara uma pergunta relacionada,documentação do wgetdiz:
Observe também que strings de consulta (strings no final de uma URL começando com um ponto de interrogação ('?') não são incluídas como parte do nome do arquivo para regras de aceitação/rejeição, mesmo que elas realmente contribuam para o nome escolhido para o arquivo local. Espera-se que uma versão futura do Wget forneça uma opção para permitir a correspondência com strings de consulta.
Você provavelmente terá que usar uma ferramenta diferente, comoPavukouhttrack. Esses dois programas fornecem filtragem de nomes mais robusta que a do wget.
Como alternativa, você pode baixar o diretório usando wget e filtrá-lo posteriormente.
find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete
Responder2
Eu usaria o httrack se você estiver tentando espelhar um diretório de arquivos *.pdf. Um comando como este funcionou para mim:
% httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update
Você pode conferir mais sobre o httrack nos seguintes URLS:
- Guia Básico do Usuário
- Links para download
- comandos de exemplo
- Artigo do blog com exemplos adicionais
Devo mencionar uma grande vantagem de usar o httrack em vez do wget é que o httrack só baixará arquivos que foram alterados/atualizados.