- O autor baixou todos os dados do Hacker News e os analisou com DuckDB
- Todo o conjunto de itens (stories + comentários), totalizando 20GB, foi salvo em arquivos JSON, com uma estrutura que também permite atualizações futuras
- Usando DuckDB, ele fez uma análise de séries temporais semanais da proporção de menções a "Python", "JavaScript", "Ruby", "Rust" e outras linguagens
- Usou um LLM para escrever SQL, o que permitiu até iniciantes realizarem análises complexas com facilidade
- O projeto pode ser visto no site público hn.unlurker.com, e qualquer pessoa pode reutilizar esses dados como base para novas análises
Raspando todos os dados do Hacker News
- Ao criar o
hn.unlurker.com, o autor desenvolveu seu próprio cliente da API do HN em Go, começando como um projeto pessoal para usar recursos modernos da linguagem e linters
- Implementou o comando
scan para baixar sequencialmente todos os itens do Hacker News a partir do item 0 (stories e comentários na HN API)
- Embora o download tenha sido interrompido várias vezes, a estrutura permitia reinício, e em poucas horas ele obteve cerca de 20GiB de arquivos JSON
Análise temporal de texto com DuckDB
- Enquanto fazia buscas simples de padrões com
grep, ele resolveu experimentar o DuckDB como ferramenta de análise, um banco de dados rápido otimizado para análise local em arquivos únicos de pequeno porte
- Carregou os arquivos JSON em tabelas e calculou semanalmente a proporção das linguagens mencionadas nos textos dos itens
- Escreveu SQL para visualizar, com média móvel de 12 semanas, a proporção de itens contendo palavras-chave como Python, JavaScript, Java, Ruby e Rust
- Graças à nova interface do DuckDB, o uso ficou mais fácil, e com a ajuda de um LLM também foi simples escrever as consultas SQL
Resultados e próximos planos
- O DuckDB ofereceu excelente desempenho e usabilidade para analisar dados nessa escala
- Depois de concluir a coleta de dados, o autor comentou, meio em tom de piada e meio a sério, que "vai treinar centenas de bots baseados em LLM para substituir o Hacker News"
- No entanto, o objetivo real de coleta e análise de dados foi alcançado, e o projeto se encerra por aqui
- A partir daqui, as próximas análises ficam por conta de quem quiser extrair novos insights com base nesses dados
Links de referência
1 comentários
Comentários no Hacker News
Há dois bancos de dados que atualizam a tabela do Hacker News e permitem análise sem precisar baixar tudo
No passado, foi feito algo parecido com a conta @fesshole no Twitter/Bluesky
Havia um arquivo JSON de 20 GiB contendo todo o conteúdo do Hacker News
Consultas por Java acabam incluindo todas as ocorrências de JavaScript, então Java fica super-representado
Fica a dúvida sobre qual é a netiqueta ao baixar todo o Hacker News
Há a previsão de que muitas APIs no futuro ofereçam a opção de retornar arquivos duckdb
Alguém fez um trabalho semelhante
Depois de baixar localmente todo o conteúdo do Hacker News, seria possível treinar um bot baseado em LLM e operá-lo como contribuidor
Houve um pedido para não usar gráficos cumulativos
No passado, alguém escreveu um dump de dados do Hacker News