Um fórum Discourse que eu uso será desativado em algumas semanas, então decidi arquivar o site. Pesquisei muito, tentei e errei, e encontrei uma solução simples com o HTTrack. Aqui está tudo o que aprendi.
Arquive um site Discourse com HTTrack
Para usuários do Windows, a melhor solução parece ser o HTTrack. Isso funcionou muito bem e arquivou o site em arquivos HTML. Todas as categorias, tópicos e postagens foram arquivados, incluindo todas as páginas com links de navegação relativos.
Um tutorial básico sobre o HTTrack está aqui. Deixei as configurações no padrão com as seguintes configurações personalizadas.
- Endereços Web:
https://forums.gearboxsoftware.com/c/homeworld/https://forums.gearboxsoftware.com/c/homeworld-dok/
- Regras de Análise:
-gearboxsoftware.com/* -forums.gearboxsoftware.com/* +forums.gearboxsoftware.com/c/homeworld/* +forums.gearboxsoftware.com/c/homeworld-dok/* +forums.gearboxsoftware.com/t/* +forums.gearboxsoftware.com/user_avatar/* +sea2.discourse-cdn.com/*
- ID do Navegador (também conhecido como User Agent):
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Observação: Há um problema de CSS impedindo que os links de categoria funcionem, mas isso pode ser facilmente corrigido conforme descrito abaixo.
Problema de CSS
Ao visualizar páginas de Categoria como googlebot, os links de tópico não funcionam. Um exemplo é aqui.
Isso torna a navegação impossível nas páginas de categoria no HTTrack, no archive.org e no cache do Google. Parece ser um problema do Discourse em um arquivo CSS. Para corrigir os links, basta bloquear/excluir o seguinte arquivo CSS:
stylesheets/desktop_theme_10_1965d1d398092f2d9f956b36e08b127e00f53b70.css?__ws=forums.gearboxsoftware.com
@codinghorror - Vocês podem resolver isso?
Desafios
Encontrei os seguintes desafios e eventualmente os superei após muita tentativa e erro.
- As páginas do Discourse são geradas dinamicamente com JavaScript. Isso resulta em maus resultados com a maioria das ferramentas de arquivamento/rastreamento.
- A maioria dos tópicos carrega apenas com as primeiras ~20? postagens, o restante das postagens não aparece até que você role para baixo. Pressionar Ctrl+P carrega uma página
/printcom todas as postagens visíveis. Os usuários são limitados a imprimir 5 páginas por hora no modo de impressão, mas esse limite pode ser aumentado por um administrador do site Discourse. - Adrelanos observou que tópicos de várias páginas não estavam sendo arquivados corretamente pelo HTTrack, no entanto, suspeito que esse problema se deva às configurações do HTTrack dele, pois eu não tive esse problema.
- Salvar uma página em PDF não incluirá nenhuma seção de detalhes recolhida.
- As páginas podem ser carregadas em HTML básico adicionando
?_escaped_fragment_ao final de um URL, mas esse truque só funciona para tópicos, não para categorias.
Os desafios acima não são uma preocupação quando você descobre que todas as páginas/conteúdo do Discourse podem ser renderizados corretamente como HTML para rastreadores. Para fazer isso, você deve alterar o user agent do seu rastreador/navegador para googlebot para obter a versão HTML das páginas.
Archive.org
Se você usar o recurso “Salvar Página Agora” em web.archive.org, ele arquivará a versão JavaScript do Discourse com resultados ruins. O Archive.org usa o user agent da pessoa que solicita o arquivo. Portanto, você deve alterar seu user agent para googlebot. Você pode obter uma extensão do Chrome chamada “User-Agent Switcher for Chrome”. Nas opções, adicione:
- Nome: Googlebot
- String:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) - Grupo: Chrome
- Indicador: 1
Ferramentas de Arquivamento Alternativas
Muitas ferramentas estão listadas aqui: Archive an old forum "in place" to start a new Discourse forum
Também testei brevemente ferramentas GUI como Cyotek WebCopy, A1 Website Download e WAIL.
Ferramentas de linha de comando incluem a ferramenta de mcmcclur e o wget. Um tutorial sobre wget está aqui.
No entanto, para usuários do Windows, a melhor solução parece ser o HTTrack.
Observação: Como sou um novo usuário, estou limitado a dois links em uma postagem. Por isso, transformei alguns links em texto pré-formatado.