Finja que queria que uma cópia simples da página fosse baixada para o meu HD para manutenção permanente. Não estou procurando uma obtenção recursiva profunda, apenas uma única página, mas também quaisquer recursos carregados por essa página para serem baixados.
Exemplo: https://www.tumblr.com/
Espero:
- O index.html
- Qualquer imagem carregada
- Qualquer arquivo JS carregado
- Qualquer arquivo CSS carregado
- Quaisquer imagens carregadas no arquivo CSS
- links para os recursos da página localizados para trabalhar com as cópias baixadas (sem dependência da web)
Estou interessado em saber se você pode me ajudar a encontrar a melhor sintaxe wget ou outra ferramenta que faça isso. As ferramentas que eu tentei geralmente falham ao obter as imagens carregadas por CSS; portanto, a página nunca parece correta quando carregada localmente. Obrigado!
Solução Tangente
Eu encontrei uma maneira de fazer isso usando o FireFox. O salvamento padrão está interrompido e há um complemento chamado "Salvar Concluído", que aparentemente pode fazer um bom trabalho com isso. No entanto, você não pode baixá-lo porque diz que não é suportado na versão atual do FireFox. O motivo é que ele foi transferido para este complemento: "Mozilla Archive Format". Instale isso e, quando você usar Arquivo> "Salvar página como ..", haverá uma nova opção chamada "Página da Web concluída", que é essencialmente o complemento antigo, que corrige a implementação de estoque que o FireFox usa (o que é terrível). Esta não é uma solução WGET, mas fornece uma solução viável.
Edição: Outro problema ridículo para quem pode estar seguindo esta pergunta no futuro, tentando fazer isso. Faça com que o complemento funcione corretamente, você precisa de Ferramentas> Formato de arquivo Mozilla e altere a configuração padrão (terrível) de "tire uma foto fiel da página" para "preservar scripts e código-fonte usando Salvar concluído", caso contrário, o complemento esvaziará tudo seus arquivos de script e substitua-os pelo texto "/ * Script removido por snapshot save * /".
Respostas:
wget -p -k http://ExampleSite.com
O -p fornece a você todos os elementos necessários para visualizar o site corretamente (css, imagens, etc.). O -k mudará todos os links (para incluir os de CSS e imagens) para permitir que você visualize a página offline como ela apareceu online.
Atualização: isso é específico para o seu site de exemplo: tumblr.com
O colapso:
-H = Permite que o wget vá estender um host estrangeiro. Obrigatório, já que o tumblr não tem suas imagens na primeira página no mesmo endereço, eles estão usando secure.assets.tumblr.com, veja nota sobre exclusão de domínios
-N = captura apenas os arquivos mais recentes do que você possui atualmente, caso esteja baixando a mesma página novamente ao longo do tempo
-k = converta seus links para visualizá-lo offline corretamente
-p = pega todos os elementos necessários para visualizá-lo corretamente (css, imagens etc.)
--exclude-domains = como a página inicial do tumblr.com tem um link para quantserve.com e acho que você não quer essas coisas, é necessário excluí-las do download do wget. Nota : Este é um item muito importante que você deve usar com -H, porque se você for a um site e eles tiverem vários links para hosts externos (pense em coisas de anunciantes e análises), você também vai pegar essas coisas!
--no-check-certificate obrigatório, já que o tumblr está usando https
-U altera o agente do usuário. Não é realmente necessário nesse caso, pois ele permite o agente do wget padrão, mas eu sei que alguns sites o bloquearão. Acabei de jogar aqui, para o caso de você encontrar problemas em outros sites. No exemplo de trecho que dei, ele aparece como Mozilla Firefox 6.02a
finalmente você tem o site: https://www.tumblr.com
fonte
Para o site específico que você mencionou e muitos outros codificados como wget (e curl), simplesmente não funcionará. O problema é que alguns dos links de ativos necessários para renderizar a página em um navegador são criados por javascript. O Wget tem uma solicitação de recurso pendente para executar o javascript:
http://wget.addictivecode.org/FeatureSpecifications/JavaScript
No entanto, até que isso seja concluído, os sites que constroem links de ativos usando javascript não serão clonáveis usando o wget. A solução mais fácil é encontrar uma ferramenta que esteja criando um DOM e analisando o javascript como um mecanismo de navegador (ou seja, o método do Firefox que você mencionou).
fonte
Você também pode fazer isso automaticamente (ou programaticamente se codificar) emitindo um comando via shell usando o wget:
Ele fará o download da página e dos arquivos internos e torna os links locais.
fonte
Eu acho que isso vai pegar tudo, mas tente e descubra.
fonte
$ ( man wget ):
fonte