Por que wget não está disposto a fazer o download recursivamente?

3

O comando

$ wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

faz o download apenas de index.html e robots.txt para mim, embora haja links para outras páginas no mesmo diretório. Por exemplo

<A HREF="viewp.html">Viewpoint specification</A>

Por que wget ignora isso?

    
por foobar 31.12.2015 / 21:22

1 resposta

9

geralmente é um engano tecnológico confundir a própria ignorância fundamental com uma falha com a tecnologia que se desconhece completamente.

Eu testei isso e descobri o problema imediatamente:

O wget respeita o robots.txt, a menos que explicitamente seja dito para não.

wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
--2015-12-31 12:29:52--  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
Resolving www.comp.brad.ac.uk (www.comp.brad.ac.uk)... 143.53.133.30
Connecting to www.comp.brad.ac.uk (www.comp.brad.ac.uk)|143.53.133.30|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 878 [text/html]
Saving to: ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’

www.comp.brad.ac.uk/research/GI 100%[======================================================>]     878  --.-KB/s   in 0s     

2015-12-31 12:29:53 (31.9 MB/s) - ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’ saved [878/878]

Loading robots.txt; please ignore errors.
--2015-12-31 12:29:53--  http://www.comp.brad.ac.uk/robots.txt
Reusing existing connection to www.comp.brad.ac.uk:80.
HTTP request sent, awaiting response... 200 OK
Length: 26 [text/plain]
Saving to: ‘www.comp.brad.ac.uk/robots.txt’

www.comp.brad.ac.uk/robots.txt  100%[======================================================>]      26  --.-KB/s   in 0s     

2015-12-31 12:29:53 (1.02 MB/s) - ‘www.comp.brad.ac.uk/robots.txt’ saved [26/26]

FINISHED --2015-12-31 12:29:53--

Como você pode ver, o wget fez o que foi solicitado por você, perfeitamente.

O que o robots.txt diz nesse caso?

cat robots.txt
User-agent: *
Disallow: /

Portanto, este site não quer que os robôs baixem coisas, pelo menos não aqueles que estão lendo e seguindo o robots.txt, geralmente isso significa que eles não querem ser indexados nos mecanismos de busca.

wget -r -erobots=off  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

Agora, se o wget for muito poderoso para você aprender, tudo bem, mas não cometa o erro de pensar que a falha está errada.

No entanto, há o risco de fazer downloads recursivos de um site, por isso, às vezes, é melhor usar limites para evitar a invasão do site inteiro:

wget -r -erobots=off -l2 -np  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
  • -l2 significa 2 níveis máx. -l significa: nível.
  • -np significa não subir na árvore, apenas na página inicial. -np significa: nenhum pai.

Depende apenas da página de destino, às vezes você quer especificar exatamente o que obter e não obter, por exemplo, neste caso, você está apenas obtendo o padrão de extensões .html / .htm, não gráficos, pdfs, extensões de música / vídeo. A opção -A permite adicionar tipos de extensão para capturar.

A propósito, eu verifiquei e meu wget, versão 1.17, é de 2015. Não sei qual versão você está usando. Python pelo jeito que eu acho que também foi criado nos anos 90, então, pelo seu raciocínio, python também é lixo dos anos 90.

Admito que o wget --help é bastante intenso e rico em recursos, assim como a página do manual do wget, por isso é compreensível que alguém não queira lê-lo, mas existem vários tutoriais on-line que mostram como o wget mais comum ações.

    
por 31.12.2015 / 21:35