entendendo a saída do wget -r

entendendo a saída do wget -r

Esta é a saída do comando tree em um diretório:

.
|-- asdf.txt
|-- asd.txt
|-- fabc
|   |-- fbca
|   `-- file1.txt
|-- fldr1
|-- fldr2
|   `-- index.html
|-- fldr3
|   |-- cap.txt
|   `-- f01
`-- out.txt

6 directories, 6 files

Eu inicio um servidor http local neste diretório. Em seguida executo o seguinte comando:

wget -r -nv --spider --no-parent http://localhost:3000 -o -

...e obtenha a seguinte saída:

2017-01-02 20:07:24 URL:http://localhost:3000/ [1580] -> "localhost:3000/index.html" [1]
http://localhost:3000/robots.txt:
2017-01-02 20:07:24 ERROR 404: Not Found.
2017-01-02 20:07:24 URL:http://localhost:3000/fabc/ [897] -> "localhost:3000/fabc/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr1/ [536] -> "localhost:3000/fldr1/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr2/ [0/0] -> "localhost:3000/fldr2/index.html" [1]
2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/ [896] -> "localhost:3000/fldr3/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/asd.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL: http://localhost:3000/asdf.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL: http://localhost:3000/out.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL:http://localhost:3000/fabc/fbca/ [548] -> "localhost:3000/fabc/fbca/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/fabc/file1.txt 200 OK
unlink: No such file or directory
2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/f01/ [548] -> "localhost:3000/fldr3/f01/index.html" [1]
2017-01-02 20:07:24 URL: http://localhost:3000/fldr3/cap.txt 200 OK
unlink: No such file or directory
Found no broken links.

FINISHED --2017-01-02 20:07:24--
Total wall clock time: 0.3s
Downloaded: 7 files, 4.9K in 0s (43.4 MB/s)
  1. O wget foi escrito para sempre procurar index.html? Podemos desabilitar isso?
  2. Quais são esses números como 1580, 536, 0/0, etc?
  3. Por que diz unlink: No such file or directory?

Responder1

  1. Você pode tentar pular os arquivos com --rejecta opção (também aceita caracteres curinga):

    wget --rejeitar índice.html

No entanto, você não quer fazer isso. Ao usar wget with -r, de alguma forma é necessário obter uma lista de arquivos dentro do diretório. Assim, o wget solicita o arquivo index.html e analisa o conteúdo na esperança de obter caminhos para outros arquivos neste diretório. Quando não há arquivo index.html na pasta, o servidor web geralmente irá gerá-lo para wget - este arquivo conterá a listagem do diretório. A criação deste arquivo de lista deve ser habilitada no servidor web - caso contrário, o wget receberá uma resposta HTTP 404 e falhará no download recursivo.

  1. Este é o tamanho do arquivo em bytes.
  2. Isso significa que um arquivo não pôde ser removido (provavelmente porque não foi criado). Você tem permissão de gravação no diretório em que faz o download com o wget?

Editar:Depois de testar os downloads do wget, --spiderreproduzi --recursive seu erro de desvinculação. Parece que o wget usa o tipo de resposta content para determinar se o arquivo pode conter links para outros recursos. Se o teste do tipo de conteúdo falhar e o arquivo não for baixado, o wget ainda tentará remover o arquivo temporário, como se ele tivesse sido baixado (isso fica aparente ao executar novamente o wget com --debug. Ele indicará claramente Removing file due to --spider in recursive_retrieve():). Acho que você encontrou um bug no wget.

informação relacionada