- Empacota páginas da web em um único arquivo HTML
- Diferentemente do recurso tradicional de “salvar página”, o
monolith salva não apenas o documento de destino, mas também inclui de uma vez só CSS, imagens e assets JavaScript
- Incorpora todos os assets como Data URLs, permitindo renderizar a página exatamente como na internet mesmo sem conexão de rede
- Escrito em Rust, pode ser instalado em macOS/Windows/Linux: cargo/brew/choco/snap/apk..
Como usar
Opções
-a: excluir fontes de áudio
-b: usar base URL personalizada
-B: impedir a busca de assets em domínios específicos
-c: excluir CSS
-C: ler cookies de file
-d: permitir a busca de assets apenas nos domain(s) especificados
-e: ignorar erros de rede
-E: salvar o documento com encoding personalizado
-f: omitir frames
-F: excluir web fonts
-h: exibir informações de ajuda
-i: remover imagens
-I: isolar o documento
-j: excluir JavaScript
-k: aceitar certificados X.509 (TLS) inválidos
-M: não adicionar informações de timestamp e URL
-n: extrair o conteúdo de elementos NOSCRIPT
-o: gravar a saída em file (use “-” para STDOUT)
-s: modo silencioso
-t: ajustar o network request timeout
-u: fornecer User-Agent personalizado
-v: excluir vídeo
Whitelist e blacklist de domínios
- Com as opções
-d e -B, é possível controlar os domínios dos quais os assets podem ser buscados.
Conteúdo dinâmico
- O Monolith não possui um motor JavaScript, então sites que buscam e exibem dados após o carregamento inicial podem exigir ferramentas adicionais.
- Por exemplo, é possível usar o Chromium (Chrome) para atuar como um pré-processador dessas páginas.
Configuração de proxy
- É necessário definir as variáveis de ambiente
https_proxy, http_proxy, no_proxy.
Licença
- Creative Commons Zero v1.0 Universal
- O autor dedica ao domínio público, em todo o mundo, todos os direitos autorais e direitos conexos deste software, dentro do limite permitido por lei
Opinião do GN⁺
- O
monolith é uma ferramenta eficaz para preservar páginas da web offline exatamente como o original, podendo ser útil para pesquisadores e desenvolvedores.
- A ferramenta pode ser especialmente atraente para quem tem interesse em arquivamento da web ou preservação de conteúdo, oferecendo a capacidade de revisar páginas mesmo em ambientes sem internet.
- De uma perspectiva crítica, há a limitação de não conseguir lidar com conteúdo carregado dinamicamente, o que pode causar o incômodo de o usuário precisar recorrer a ferramentas adicionais.
- Outros projetos com funcionalidade semelhante incluem HTTrack e Wget, que também podem ser usados para salvar sites offline.
- Antes de usar o
monolith, é importante verificar os direitos autorais e as permissões de uso da página que se deseja salvar, tomando cuidado para que o objetivo de uso do conteúdo salvo não gere problemas legais.
3 comentários
Era irritante salvar como arquivo empacotado, então se der para salvar em 1 arquivo só, ótimo haha. Parece que vai ser útil para arquivar sites estáticos e subir no servidor web ^^
Fiz um arquivamento de Bicycle - tudo sobre o princípio de funcionamento de uma bicicleta.
Havia uma extensão de navegador semelhante que eu usava antes, SingleFile - ferramenta que salva uma página da web em um único arquivo HTML,
mas nenhuma das duas ferramentas executou o WebGL corretamente.
O monolith nem chegou a baixar o modelo,
e o SingleFile baixa o modelo e renderiza até a primeira imagem, mas não realiza aquele comportamento interativo.
O tamanho de cada saída é de 2 MB e 9 MB. Ao fazer um hard refresh nas ferramentas de desenvolvedor, são baixados 3 MB.
Comentários do Hacker News
Aprendeu no README como obter o arquivo HTML de uma página web no macOS usando o Google Chrome depois que o JavaScript é executado. Pretende registrar os detalhes em um TIL, e sua própria ferramenta,
shot-scraper, que usa Playwright Chromium, também oferece funcionalidade semelhante./Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --headless --incognito --dump-dom https://github.com > /tmp/github.htmlPrefere distribuir páginas de arquivo único sempre que possível, pelo princípio de que deve ser possível ver tudo em "ver código-fonte". Essas páginas são autocontidas e podem ser usadas offline ou reenviadas. Criou um sistema de build simples para escrever jogos em TypeScript e compilá-los em um único arquivo HTML. Quando os navegadores passarem a suportar a sintaxe de TypeScript, não haverá mais necessidade de compilador nem etapa de build.
Como isso se compara ao SingleFile?
Usa com frequência serviços para salvar páginas da web para ler depois, mas muitas vezes, quando realmente vai ler, a página já não existe mais. Está considerando que migrar para uma versão de arquivamento offline pode ser uma opção melhor.
Pergunta sobre como restaurar um site inteiro a partir do Wayback Machine. O banco de dados de um site querido foi apagado, mas todo o conteúdo existe no Internet Archive. Parece que será necessário scraping manual e correções de URLs de CSS usando Python.
Escreveu algo parecido alguns anos atrás e o usa principalmente ao gerar HTML em programas Go. Usa links para folhas de estilo externas e JavaScript, e depois processa isso em um único arquivo HTML.
Opinião de que seria bom haver suporte a uma função que siga links até uma profundidade especificada. Menciona algo semelhante ao Httrack.
Acha a ferramenta interessante, mas a vê como uma gambiarra para resolver problemas na forma como os navegadores lidam com páginas da web. Defende que, em vez de o navegador salvar a página como um arquivo
blah.htmle uma pastablah_files, ele deveria agrupar os dois em uma única pasta para que fosse fácil mover e copiar.Explicação de como usar
wgetpara baixar uma página da web e todos os seus recursos, com link para a documentação.Fornece um link relacionado para "Show HN: CLI tool for saving web pages as a single file", publicado no Hacker News em agosto de 2019.