Como eu uso o HTTrack para baixar arquivos gzipados de URLs com caracteres acentuados?

1

Estou baixando um site com HTTrack com resultados irregulares. Vários diretórios retornam 2 ou mais versões do mesmo arquivo HTML. Essas duplicatas em qualquer diretório podem incluir:

  1. um arquivo chamado índice.html (observe o acentuado í) que mostra um jargão no navegador. Quando estudado com mais cuidado, isso se torna um arquivo .z com uma extensão incorreta, contendo o arquivo HTML correto
  2. um arquivo chamado índice.html.z, que é um arquivo contendo uma versão legível desse arquivo
  3. um arquivo chamado índice-2.html, que é uma boa versão do índice.html original, perfeitamente legível no navegador
  4. um arquivo chamado índice-2.html.z, que é um arquivo contendo o mesmo arquivo novamente, mas às vezes esse arquivo terá um tamanho um pouco diferente do primeiro
  5. etc

O log de erros do HTTrack mostra o seguinte:

18:07:32 Error: "Error when decompressing" (-1) at link example.com/conversación/índice.html

Este é um site em espanhol e alguns diretórios têm sotaque neles e os arquivos são chamados de índice.html em vez de index.html. Isso me faz suspeitar que a razão pela qual o HTTrack atrapalha o download é o sotaque, mas não posso provar, exceto que baixei a versão em inglês do mesmo site sem problemas.

Para resumir, o problema pode estar nos caracteres acentuados na URL ou em alguma outra coisa relacionada à maneira do HTTrack de lidar com arquivos HTML compactados, mas minha questão principal permanece a mesma:

Este é um bug no HTTrack ou no comportamento esperado, e como posso contatá-lo para fazer o download da versão em espanhol do site com sucesso?

    
por RandyS 18.06.2015 / 04:13

1 resposta

2

Isso pode ser causado pelos caracteres acentuados, como você suspeita. Este bug aberto parece estar relacionado.

Seems caused by Chinese text in .whtt title. Sometimes the Chinese text will cause Winhttrack to create some rubbish coded folders in the same folder as the .whtt file. And in these cases, there will be .html.z files left in the download folders and sometimes .delayed or empty files and failure with "Error when decompressing" message.

When I retried with plain ASCII project name for the sam URL, it succeeded.

So it seems an encoding problem (which doesn't exist in some earlier versions).

sugestões:

  • Experimente o sinal --utf8-conversion .
  • Se isso não funcionar, tente baixar uma versão anterior do programa (uma vez que o repórter de erros afirma que algumas versões anteriores não apresentavam o problema).
  • Como alternativa, use wget . Algo como

    wget -mkp -np -nH www.example.com/path/to/toplevel/directory/index.html
    

    copiará recursivamente todas as páginas vinculadas a index.html , que estão sob o diretório example.com/path/to/toplevel/directory/ . Ele também inclui todos os arquivos necessários para suportar esses arquivos (CSS, JS, etc).

    nota: se o wget destruir os nomes acentuados, use a opção

    --restrict-file-names=nocontrol
    

arquivos quase duplicados

Quanto à questão dos arquivos quase duplicados, o HTTrack (ou wget) não pode realmente fazer nada sobre isso, a menos que você possa dizer como escolher quais arquivos ele deve ou não baixar.

Se houver algum tipo de esquema de nomenclatura consistente e você souber que não deseja arquivos com um determinado tipo de nome e / ou caminho, use um filtro para excluí-los.

  • HTTrack permite que os arquivos sejam excluídos usando filtros . Estes são padrões curinga prefixados com - , por exemplo. o filtro

    -www.example.com/path/to/toplevel/directory/subdir_with_dupes/*-2.html
    

    excluirá todos os arquivos no subdiretório subdir_with_dupes/ que tiverem um nome terminado em -2.html . Existem vários curingas e regras de varredura que podem ser usados em filtros. Veja o link acima ou a página do manual.

  • Se você usar wget, poderá excluir diretórios com --exclude-directories e sufixos de nome de arquivo com --reject (permitindo curingas). Ou você pode aplicar um filtro de expressão regular ao URL inteiro com --reject-regex . Existem muitas outras opções. Você pode obter uma lista com wget --help e explicações com man wget .

por 18.06.2015 / 07:44