Estou tentando salvar uma página do Reddit para visualização OFFLINE como um único arquivo HTML, EXATAMENTE como é exibido no navegador e depois de já ter expandido manualmente alguns tópicos de comentários. Este problema é um subconjunto da questão geral de como salvar todo o DOM da web em seu estado atual, preservando os efeitos e o layout CSS. Por exemplo, aqui estão uma infinidade de postagens na plataforma Stack Exchange que fazem esta pergunta geral:
- Como posso despejar todo o Web DOM em seu estado atual no Chrome?
- É possível despejar o DOM com JavaScript e preservar os efeitos e o layout CSS?
- Como salvar uma página da web em seu estado atual com imagens no Chrome?
- Salve a página da web atual em um único formato de arquivo HTML
- Posso capturar e salvar o estado atual de uma página da web usando javascript?
- Como mostrar/salvar o HTML incluindo imagens conforme mostrado atualmente pelo navegador da web?
- Como obter uma cópia local perfeita de uma página da web?
- Como salvar um aplicativo da web em HTML estático?
- Salvar site contendo javascript depois de interpretado
- Como faço para salvar uma página da Web sem recarregar ou executar novamente o JS?
- Como faço o download completo de uma página da web, preservando sua funcionalidade? [duplicado]
Quase todas as respostas são de uma das seguintes formas:
Clique com o botão direito e selecione
Save as...
e salve comoWeb Page, Complete (*.htm;*.html)
ouWeb page, Single File (*.mhtml)
.Abra o Chrome DevTools e copie todo o HTML (
Copy outerHTML
) daElements
guia.Você nunca será capaz de salvar um arquivo que se pareça exatamente com a versão ativa do site porque muitos links são links "relativos" e muitos links para scripts externos podem estar contidos em arquivos CSS e JS.
Use uma ferramenta como HTTrack. (Até onde eu sei, no entanto, o HTTrack não suporta salvar tudo em um único arquivo HTML.)
Salvar uma página da web como um único arquivo HTML exatamente como aparece para o usuário durante uma renderização ao vivo é simplesmente impossível para muitos sites.
Use uma extensão de navegador, como “ Single File ” (a página GitHub do desenvolvedor está aqui ), “ Save Page WE ” ou “ WebScrapBook ”.
Experimente a extensão “ WebRecorder ” do Chrome .
Várias dessas respostas realmente alcançam algum nível de salvamento do layout da página da Web como um único arquivo HTML, exatamente como aparece quando renderizado ao vivo, mas há uma ENORME desvantagem: elas não salvam o arquivo HTML de uma maneira que possibilite o usuário visualizar a página OFFLINE . A parte de visualização offline é essencialmente o que procuro e é o cerne do meu problema.
Por exemplo, abrir o Chrome DevTools e salvar tudo outerHTML
na Elements
guia realmente permite que o usuário salve a página exatamente como ela aparece quando renderizada ao vivo, mas assim que o usuário tenta abrir o arquivo HTML no modo offline, nenhum dos recursos externos os scripts são capazes de carregar e, portanto, toda a seção de comentários da página do Reddit literalmente nem é exibida. Fiz uma inspeção manual no próprio arquivo HTML e descobri que os próprios comentários estão realmente presentes no arquivo HTML, mas simplesmente não são renderizados quando o usuário carrega o arquivo, pois dependem de scripts externos para ditar como para exibir ao usuário.
Uma solução (quase...)
Na minha experiência, descobri que usar a extensão do Chrome SingleFile realiza exatamente a tarefa que procuro (quase), e é melhor. Ele é capaz de salvar a página exatamente como parece ao usuário durante uma renderização ao vivo (mesmo quando visualizada offline), e descobri que é melhor do que as extensões "Salvar página WE" e "WebScrapBook". SingleFile lida perfeitamente com muitos sites, mas falha miseravelmente ao tentar salvar uma página do Reddit que possui um enorme tópico de comentários . Nesses casos, a extensão consome muita memória e simplesmente trava a guia ( Out of Memory
ocorre um erro). A parte triste é que a extensão funciona bem em postagens do Reddit que têm uma seção de comentários muito pequena, mas de forma um tanto zombeteira, na maioria das vezes quando eu quero salvar uma postagem do Reddit, a postagem do Reddit tem uma seção de comentários muito grande e, portanto, o A extensão SingleFile não consegue lidar com isso.
O desenvolvedor do SingleFile tem uma variante de linha de comando da ferramenta em sua página do GitHub , mas isso simplesmente inicia um navegador sem cabeça e baixa o URL solicitado. Essa abordagem é inútil no meu caso, pois quero salvar a página do Reddit com as modificações que fiz pessoalmente e manualmente (ou seja, com os tópicos de comentários desejados expandidos manualmente). Além disso, tive o mesmo problema de falta de memória com essa abordagem.
Solução alternativa suja
Descobri que uma solução super suja para o meu problema é simplesmente salvar a página no formato PDF, mas não quero um formato PDF. Eu quero um formato HTML.
Alguma ideia sobre como salvar uma página do Reddit para visualização offline, mesmo em casos em que a seção de comentários é bastante grande?