wget não está convertendo links

6

Estou tentando espelhar um site bastante grande (20.000 páginas) antes de uma grande reforma. Basicamente, eu preciso de um backup antes de passar para o novo caso tenhamos esquecido algo de que precisamos (teremos cerca de 1.000 páginas no lançamento). O site é executado em um CMS que não é possível extrair facilmente dados utilizáveis, por isso estou tentando fazer a cópia com wget.

Meu problema é que wget não parece estar realmente convertendo links, apesar da presença de --convert-links ou -k no comando. Eu tentei algumas combinações diferentes de sinalizadores, mas não consegui obter a saída de que preciso. A tentativa mais recente falhada foi:

nohup wget --mirror -k -l10 -PafscSnapshot --html-extension -R *calendar* -o wget.log http://www.example.org &

Eu também incluí os links --backup-converted e -convert-em vez de -k (não que isso tenha importado). Eu fiz isso com e sem -P e -l, novamente não que eles devessem importar.

Resulta em arquivos que ainda possuem links como:

http://www.example.org/ht/d/sp/i/17770
    
por acrosman 15.04.2010 / 19:05

4 respostas

8

Este é um post antigo, mas estou colocando a resposta aqui para futuros pesquisadores.

O recurso --convert-links acontece somente após o download do site ser concluído. Eu acho que, com um site tão grande, você tentou parar o processo depois que algumas páginas foram concluídas e, portanto, o processo ainda não havia sido iniciado.

Veja também link

A partir dos documentos do wget

‘-k’
‘--convert-links’
After the download is complete, convert the links in the document to make them suitable for local viewing. This affects not only the visible hyperlinks, but any part of the document that links to external content, such as embedded images, links to style sheets, hyperlinks to non-html content, etc.

Each link will be changed in one of the two ways:

    The links to files that have been downloaded by Wget will be changed to refer to the file they point to as a relative link.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif, also downloaded, then the link in doc.html will be modified to point to ‘../bar/img.gif’. This kind of transformation works reliably for arbitrary combinations of directories.
    The links to files that have not been downloaded by Wget will be changed to include host name and absolute path of the location they point to.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif (or to ../bar/img.gif), then the link in doc.html will be modified to point to http://hostname/bar/img.gif. 

Because of this, local browsing works reliably: if a linked file was downloaded, the link will refer to its local name; if it was not downloaded, the link will refer to its full Internet address rather than presenting a broken link. The fact that the former links are converted to relative links ensures that you can move the downloaded hierarchy to another directory.

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. 
    
por 21.11.2012 / 05:08
1

Talvez você tenha encontrado wget -k converte arquivos diferentemente no Windows & Linux devido a restrições de nome de arquivo do sistema operacional?

    
por 16.07.2010 / 22:56
1

Eu tenho o mesmo com um site de 6Gig que estou tentando fazer backup. Após alguns dias, o wget é concluído sem uma mensagem de erro e sai do status 0, mas sem converter os links. Fazer uma recuperação menor com as mesmas opções funciona bem. É como se uma tabela interna do que foi baixada fosse lavada ou corrompida antes que o wget acabe.

Vou tentar refazer o site com -nc (que não deve refazer nada, porque já foi baixado e terminar com a conversão dos links - consulte Torne os links HTML do wget convert para o parente após o download se -k não foi especificado )

    
por 17.12.2010 / 13:02
0

-k é ignorado se você também tiver -o conforme manual:

Observe que uma combinação com ‘-k’ só é permitida ao fazer o download de um único documento, pois nesse caso ele converterá apenas todos os URIs relativos em externos; "-K" não faz sentido para vários URIs quando todos eles estão sendo baixados em um único arquivo; ‘-K’ pode ser usado somente quando a saída é um arquivo normal.

    
por 19.04.2016 / 02:15