Espelhando um diretório de um site

1

Eu quero baixar o livro clássico "FORTH", , que parece estar esgotado, mas disponível aqui de graça. Ou seja, eu quero usar um site-ripper para baixar todas as páginas html dentro do subdiretório forth.com/starting-forth/ (e somente lá) que estão vinculadas a partir do índice e também todas imagens usadas nessas páginas, independentemente de sua localização.

Eu tentei fazer isso com o httrack, mas parece ser complicado , porque eu teria que manualmente adicionar todos os subdiretórios de forth.com/starting-forth/ .

Como devo proceder? As soluções Windows ou Linux são boas, embora eu prefira o último.

    
por wolf-revo-cats 19.02.2017 / 08:31

1 resposta

3

Você pode usar wget .

wget -r -np -k https://www.forth.com/starting-forth/
  • -r recursivo
  • -np não segue links para diretórios pai
  • -k para fazer links em HTML ou CSS transferidos por download apontarem para arquivos locais

(De esta resposta )

(Edit) Os comandos finais:

wget -r -np -k -p --domains forth.com,netdna-ssl.com -H https://www.forth.com/starting-forth/
  • --domains é usado para definir os domínios dos quais o conteúdo será baixado. Normalmente, este será apenas o site e um cdn.
  • -H permite o download de conteúdo de outros hosts (aqueles que você colocou em --domain ).

find . -name "*.html" -type f -exec sed -i 's/\?ver=/_ver=/g' {} +

Isso pesquisa todos os arquivos html e substitui as referências a ?ver with _ver , porque quando o wget faz o download de arquivos onde o URL contém algo como jquery.colorbox.js?ver=1.1.0 , ele precisa substituir o ? por _ para salvá-lo como um arquivo.

    
por 19.02.2017 / 08:47