Como evito que o wget carregue listagens de diretórios do Apache em ordens diferentes?

Como evito que o wget carregue listagens de diretórios do Apache em ordens diferentes?

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=Aoriginadas 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:

Devo mencionar uma grande vantagem de usar o httrack em vez do wget é que o httrack só baixará arquivos que foram alterados/atualizados.

informação relacionada