Como evito que o wget carregue listagens de diretório do Apache em pedidos diferentes?

5

Estou tentando fazer download recursivamente de 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, portanto, quero reduzir as solicitações o máximo possível. Vi que há muitas solicitações como ?C=M;O=A , que são originadas dos botões do modificador de ordem de diretório, como Nome , Data ou Tamanho (< a href="http://howto.unixdev.net/"> exemplo ). Como posso evitar que essas solicitações aconteçam?

    
por Lenar Hoyt 23.04.2013 / 00:13

2 respostas

3

Como apontado em uma resposta a uma questão relacionada, a documentação do wget diz:

Note, too, that query strings (strings at the end of a URL beginning with a question mark (‘?’) are not included as part of the filename for accept/reject rules, even though these will actually contribute to the name chosen for the local file. It is expected that a future version of Wget will provide an option to allow matching against query strings.

Você provavelmente terá que usar uma ferramenta diferente, como pavuk ou httrack . Esses dois programas fornecem filtragem de nome mais robusta que a do wget.

Como alternativa, você pode baixar o diretório usando o wget e filtrá-lo depois.

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete
    
por 23.04.2013 / 00:59
2

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:

Eu devo mencionar que uma grande vantagem do uso do httrack sobre o wget é que o httrack só faz o download de arquivos que foram alterados / atualizados.

    
por 23.04.2013 / 01:27

Tags