wget não converte URLs corretamente quando --convert-links é especificado

1

De acordo com as páginas do manual, quando eu especificar --convert-links to wget:

After the download is complete, convert the links in the document to make them suitable for local viewing [...] Note that only at the end of the download can Wget know which links have been downloaded. Because of that, the work done by -k will be performed at the end of all the downloads.

Digamos que eu faça algo como wget --convert-links http://stackoverflow.com . Este site é grande o suficiente para que eu nunca complete o download de tudo. Neste caso, eu nunca vou ter meus links convertidos?

Quando executo isso localmente a partir de /tmp/wget , vejo um diretório chamado stackoverflow.com com arquivos como index.html e tour.html . Mas quando eu carregar a página de índice e passar o mouse sobre o link para o tour, ele me leva para file:///tour.html , em vez de file:///tmp/wget/stackoverflow.com/tour.html (a localização real do arquivo).

    
por ashes999 13.11.2014 / 15:08

1 resposta

1

Sua única pergunta parece ser:

In this case, will I never get my links converted over?

Eu acho que não. Você poderia tentar isso com uma partição limitada em tamanho e ver o que o wget faz quando ficar sem espaço (ou usar a opção --quota , presumivelmente ele ainda será convertido com isso).

Eu posso entender porque esta é a estratégia. Se isso fosse feito na hora, teríamos que passar por todos os documentos para cada item baixado. Considere:

  • O A.html é baixado.
  • B.html é baixado, agora verifique A.html para links.
  • C.html é baixado, agora verifique A.html e B.html para links.
  • ... e assim por diante.

Em vez disso, presumivelmente, um manifesto é mantido e, ao final, todos os documentos são digitalizados uma vez . É claro que meu método on-the-fly poderia ser melhorado mantendo um índice de todos os links, mas ainda acho que ele será de ordens de magnitude mais lenta - e exigirá que as ordens de magnitude sejam gravadas com mais frequência no disco. Em vez de salvar um arquivo, em seguida, alterá-lo uma vez no final, você normalmente estaria reescrevendo dezenas ou centenas de vezes.

    
por 13.11.2014 / 15:48

Tags