O CNPq realiza um enérgico trabalho na integração de bases de currículos acadêmicos de instituições públicas e privadas em uma única plataforma denominada Lattes. Os chamados ``Currículos Lattes'' são considerados um padrão nacional de avaliação representando um histórico das atividades científicas / acadêmicas / profissionais de pesquisadores cadastrados. Os currículos Lattes foram projetados para mostrar informação pública, embora, individual de cada usuário cadastrado na plataforma. Muitas vezes, realizar uma compilação ou sumarização de produções bibliográficas para um grupo de usuários cadastrados de médio ou grande porte (e.g. grupo de professores, departamento de pós-graduação) realmente requer um grande esforço mecânico que muitas vezes é suscetível a falhas.
O scriptLattes é um script GNU-GPL desenvolvido para a extração e compilação automática de: (1) produções bibliográficas, (2) produções técnicas, (3) produções artísticas, (4) orientações, (5) projetos de pesquisa, (6) projetos de extensão, (7) projetos de desenvolvimento, (8) áreas de atuação com especialidades, (9) prêmios e títulos, e (10) grafo de colaborações de um conjunto de pesquisadores cadastrados na plataforma Lattes. Associações de Qualis para as produções acadêmicas publicadas em Congressos e Revistas também são considerados.
O scriptLattes baixa automaticamente os currículos Lattes em formato HTML (livremente disponíveis na rede) de um grupo de pessoas de interesse, compila as listas de produções, tratando apropriadamente as produções duplicadas e similares. São geradas páginas HTML com listas de produções e orientações separadas por tipo e colocadas em ordem cronológica invertida. Além dos relatórios HTML tradicionais, o sistema agora gera automaticamente arquivos JSON individuais para cada pesquisador, facilitando a análise de dados e integração com outras ferramentas. Adicionalmente são criadas automaticamente vários grafos (redes) de co-autoria entre os membros do grupo de interesse e um mapa de geolocalização dos membros e alunos (de pós-doutorado, doutorado e mestrado) com orientação concluída. Os relatórios gerados permitem avaliar, analisar ou documentar a produção de grupos de pesquisa. Este projeto de software livre foi idealizado por Jesús P. Mena-Chalco e Roberto M. Cesar-Jr em 2005 (IME/USP).
O scriptLattes atualmente permite filtrar as produções científicas usando termos de pesquisa (Veja os exemplo teste-03).
- Projetos de Pesquisa: Extração completa com padrão
salvarParte3 - Projetos de Extensão: Suporte completo para múltiplos projetos
- Projetos de Desenvolvimento: Nova funcionalidade - extração completa de projetos de desenvolvimento/tecnológicos
- Correção de Bugs: Resolvido problema de contaminação de dados entre membros
- Múltiplas Áreas: Extração correta de todas as áreas de atuação de cada pesquisador
- Estrutura Completa: Grande área, área, subárea e especialidade quando disponível
- Parsing Inteligente: Regex otimizado para capturar especialidades com espaços e caracteres especiais
- Arquivos Individuais: JSON separado para cada pesquisador
- Estrutura Completa: Todos os tipos de dados disponibilizados
- Estatísticas Atualizadas: Contadores automáticos para todos os tipos de produção
- Parser Robusto: Correções na lógica de parsing HTML
- Estado Isolado: Cada membro processado independentemente
- Flags Corrigidas: Reset apropriado de flags de seção
- Tratamento de Idiomas: Suporte para múltiplos idiomas por pesquisador
- Python 3: Certifique-se de ter o Python 3 instalado no seu computador. Se não tiver, você pode baixá-lo em python.org.
- Google Chrome ou Chromium: Necessário para o funcionamento do ChromeDriver.
- jq: Utilitário para processamento JSON (necessário para o Makefile):
- Ubuntu/Debian:
sudo apt-get install jq - CentOS/RHEL/Fedora:
sudo yum install jqousudo dnf install jq - macOS:
brew install jq
- Ubuntu/Debian:
- wget: Para download do ChromeDriver (geralmente já instalado)
Para uma instalação completa automatizada, use o Makefile incluído:
# Clone o repositório
git clone https://github.com/jpmenachalco/scriptLattes.git
cd scriptLattes
# Instalação completa (ambiente virtual + dependências + ChromeDriver)
make installEste comando irá:
- Criar um ambiente virtual Python
- Instalar todas as dependências
- Detectar automaticamente a versão do seu Chrome/Chromium
- Baixar e configurar a versão correta do ChromeDriver
make help # Mostra todos os comandos disponíveis
make status # Verifica o status da instalação
make test # Executa o exemplo de teste
make clean # Limpa arquivos temporários e cache
make update-chromedriver # Atualiza o ChromeDrivergit clone https://github.com/jpmenachalco/scriptLattes.gitcd scriptLattespython -m venv venvvenv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtBaixe o ChromeDriver correspondente à versão do seu navegador em Chrome for Testing. É importante que as versões sejam compatíveis.
make testsource venv/bin/activate # Linux/Mac
python3 scriptLattes.py exemplo/teste-01.configO scriptLattes gera vários tipos de saída para análise dos dados extraídos:
- Páginas HTML interativas com tabelas organizadas por tipo de produção
- Gráficos de colaboração e visualizações em rede
- Mapas de geolocalização dos pesquisadores e orientandos
A partir da versão atual, o scriptLattes gera automaticamente arquivos JSON individuais para cada pesquisador na pasta json/ do diretório de saída.
Estrutura Completa do JSON por pesquisador:
informacoes_pessoais: Dados básicos do pesquisador (Nome, ID Lattes, endereço profissional, etc.)formacao_academica: Histórico completo de formação acadêmicaprojetos_pesquisa: Lista completa de projetos de pesquisa com detalhesprojetos_extensao: Projetos de extensão universitária - completo com descriçõesprojetos_desenvolvimento: 🆕 NOVO - Projetos de desenvolvimento e tecnológicos - totalmente implementadoareas_de_atuacao: Melhorado - Múltiplas áreas com grande área, área, subárea e especialidade quando disponívelproducao_bibliografica: Artigos, livros, capítulos, trabalhos em congressosproducao_tecnica: Softwares, produtos tecnológicos, trabalhos técnicospatentes_registros: Patentes, programas de computador, desenhos industriaisproducao_artistica: Produções artísticas e culturaisorientacoes: Orientações em andamento e concluídas (todas as modalidades)eventos: Participações e organizações de eventospremios_titulos: Prêmios e títulos recebidosidiomas: Melhorado - Múltiplos idiomas com proficiências detalhadasestatisticas: Atualizado - Resumo quantitativo incluindo projetos de desenvolvimento
Exemplos práticos de uso dos dados JSON:
# Listar todos os projetos de desenvolvimento (nova funcionalidade)
jq '.projetos_desenvolvimento[].nome' json/00_Paulo-Sergio-*.json
# Verificar todas as áreas de atuação com especialidades
jq '.areas_de_atuacao[] | {area: .area, subarea: .subarea, especialidade: .especialidade}' json/*.json
# Obter estatísticas completas incluindo projetos de desenvolvimento
jq '.estatisticas' json/00_Paulo-Sergio-*.json
# Extrair projetos de extensão
jq '.projetos_extensao[].nome' json/*.json
# Verificar todos os idiomas conhecidos pelos pesquisadores
jq '.idiomas[] | {nome: .nome, proficiencia_completa: .proficiencia_completa}' json/*.json
# Comparar tipos de projetos por pesquisador
jq '{nome: .informacoes_pessoais.nome_completo, projetos_pesquisa: (.estatisticas.total_projetos_pesquisa), projetos_extensao: (.estatisticas.total_projetos_extensao), projetos_desenvolvimento: (.estatisticas.total_projetos_desenvolvimento)}' json/*.jsonMelhorias na Estrutura de Dados:
-
Áreas de Atuação Aprimoradas:
{ "grande_area": "Ciências Exatas e da Terra", "area": "Ciência da Computação", "subarea": "Metodologia e Técnicas da Computação", "especialidade": "Engenharia de Software", "descricao_completa": "Grande área: Ciências Exatas... / Especialidade: Engenharia de Software." } -
Projetos de Desenvolvimento (NOVO):
{ "nome": "ES Na Palma da Mão: Uma Plataforma baseado em serviços...", "ano_inicio": "2019", "ano_conclusao": "2020", "descricao": ["Descrição completa do projeto..."], "tipo": "Projeto de desenvolvimento" } -
Estatísticas Expandidas:
{ "total_projetos_pesquisa": 9, "total_projetos_extensao": 2, "total_projetos_desenvolvimento": 7, "total_artigos_periodicos": 5 }
- CSV/Excel: Tabelas exportáveis para análise em planilhas
- GDF: Formato para análise de redes em ferramentas como Gephi
- TXT: Listas simples de produções
- Bug de Contaminação de Estado: Corrigido problema onde dados de um pesquisador eram misturados com outros
- Flags de Seção: Reset adequado de flags (
achouAreaDeAtuacao,achouIdioma, etc.) para permitir múltiplos itens - Padrão salvarParte3: Projetos de desenvolvimento agora seguem o padrão correto usado por outros tipos de projetos
- Condições de Processamento: Adicionada flag
achouProjetoDeDesenvolvimentonas condições principais do parser
- Regex Aprimorado: Especialidades agora capturadas corretamente com textos contendo espaços
- Múltiplas Seções: Suporte completo para múltiplas áreas de atuação e múltiplos idiomas
- Parsing Robusto: Melhor tratamento de caracteres especiais e formatação inconsistente
- Estado Isolado: Cada membro processado independentemente sem vazamento de dados
- ✅ Paulo: 9 projetos pesquisa + 2 projetos extensão + 7 projetos desenvolvimento + 6 áreas atuação
- ✅ Daniel: 5 projetos pesquisa + 0 projetos extensão + 5 projetos desenvolvimento + 4 áreas atuação
- ✅ Especialidades extraídas: "Engenharia de Software", "Processamento de Sinais Biológicos", etc.
- ✅ Múltiplos idiomas por pesquisador funcionando corretamente
Se você receber um erro como "This version of ChromeDriver only supports Chrome version X", execute:
make update-chromedrivermake statusSe você não estiver vendo projetos de desenvolvimento no JSON, verifique:
- Se o pesquisador realmente possui projetos na seção "Projetos de desenvolvimento" do Lattes
- Execute novamente o script com
--somente-jsonpara debugging:
python scriptLattes.py exemplo/teste-01.config --somente-jsonSe especialidades não estão sendo extraídas:
- Verifique se as áreas no Lattes seguem o formato: "Grande área: ... / Especialidade: ..."
- O sistema agora suporta múltiplas áreas por pesquisador automaticamente
Este problema foi corrigido na versão atual. Se ainda ocorrer:
- Limpe o cache:
make clean - Execute novamente:
make test
# Verificar estrutura completa de um pesquisador
jq keys json/00_Paulo-Sergio-*.json
# Verificar se projetos de desenvolvimento foram extraídos
jq '.estatisticas.total_projetos_desenvolvimento' json/*.json
# Verificar quantas áreas de atuação foram encontradas
jq '.areas_de_atuacao | length' json/*.json
# Listar todos os tipos de projetos
jq '{pesquisa: (.estatisticas.total_projetos_pesquisa), extensao: (.estatisticas.total_projetos_extensao), desenvolvimento: (.estatisticas.total_projetos_desenvolvimento)}' json/*.jsonCertifique-se de ter o Google Chrome ou Chromium instalado:
- Ubuntu/Debian:
sudo apt-get install google-chrome-stableousudo apt-get install chromium-browser - CentOS/RHEL/Fedora: Baixe do site oficial do Google Chrome
- macOS: Baixe do site oficial do Google Chrome
Se houver problemas com as dependências Python:
make clean-all # Remove tudo
make install # Reinstala do zero- Temos uma área no Discord que pode ser útil para compartilhar dúvidas/sugestões [https://discord.gg/Xz8NZ3kBc3]
- Contato direto: [jesus.mena@ufabc.edu.br]
- J. P. Mena-Chalco e R. M. Cesar-Jr. scriptLattes: An open-source knowledge extraction system from the Lattes platform. Journal of the Brazilian Computer Society, vol. 15, n. 4, páginas 31--39, 2009. [http://dx.doi.org/10.1007/BF03194511]
- J. P. Mena-Chalco e R. M. Cesar-Jr. Prospecção de dados acadêmicos de currículos Lattes através de scriptLattes. Capítulo do livro Bibliometria e Cientometria: reflexões teóricas e interfaces São Carlos: Pedro & João, páginas 109-128, 2013. [http://dx.doi.org/10.13140/RG.2.1.5183.8561]
- O scriptLattes não está vinculado ao CNPq. A ferramenta é o resultado de um esforço (independente) realizado com o único intuito de auxiliar as tarefas mecânicas de compilação de informações cadastradas nos Currículos Lattes (publicamente disponíveis). Portanto, o CNPq não é responsável por nenhuma assessoria técnica sobre esta ferramenta.
- O repositorio antigo, no sourceforge não está sendo atualizado.
- Implementado: Extração completa de projetos de desenvolvimento/tecnológicos
- Estrutura: Mesma estrutura dos projetos de pesquisa e extensão
- JSON: Campo
projetos_desenvolvimentoadicionado ao JSON - Estatísticas: Contador
total_projetos_desenvolvimentonas estatísticas
- Bug Contaminação: Corrigido vazamento de dados entre pesquisadores diferentes
- Estado Isolado: Cada membro agora é processado independentemente
- Flags Reset: Correção do reset de flags para permitir múltiplos itens por seção
- Múltiplas Áreas: Suporte para todos as áreas de atuação de um pesquisador
- Especialidades: Extração correta de especialidades com regex otimizado
- Parsing Robusto: Melhor tratamento de textos com espaços e caracteres especiais
- Estrutura Completa: Grande área, área, subárea e especialidade quando disponível
- Múltiplos Idiomas: Correção para extrair todos os idiomas de um pesquisador
- Proficiências: Extração detalhada das habilidades em cada idioma
- Reset de Flags: Corrigido problema que impedia múltiplos idiomas
- Campos Padronizados: Nomenclatura consistente (
areas_de_atuacaovsareas_atuacao) - Dados Completos: Todos os tipos de dados agora incluídos no JSON
- Estatísticas Expandidas: Contadores para todos os tipos de produção e projetos
- Padrão salvarParte3: Projetos de desenvolvimento agora seguem padrão correto
- Condições de Processamento: Flags adicionadas nas condições principais
- Tratamento de Certificação: Suporte para "Projeto certificado" em desenvolvimento
- Parsing HTML: Melhor tratamento da estrutura HTML do Lattes
- Paulo: 9 pesquisa + 2 extensão + 7 desenvolvimento + 6 áreas
- Daniel: 5 pesquisa + 0 extensão + 5 desenvolvimento + 4 áreas
- Especialidades: Corretamente extraídas (ex: "Engenharia de Software")
- Múltiplos Itens: Idiomas e áreas de atuação funcionando corretamente
As principais melhorias no código incluem:
parserLattes.py: Correção de flags e condições de processamentoprojetoDeDesenvolvimento.py: Nova classe seguindo padrão existentemembro.py: Adição de lista de projetos de desenvolvimentogrupo.py: Melhorias no parsing de áreas de atuação e export JSON- Correção em múltiplos pontos para evitar contaminação de estado entre membros
Para histórico completo de mudanças, versões e detalhes técnicos, consulte:
- CHANGELOG.md - Histórico detalhado de mudanças e correções
- CONTRIBUTING.md - Guia completo para contribuições e desenvolvimento
- exemplo/ - Arquivos de configuração e exemplos de uso
- README.md - Documentação principal (este arquivo)
Se você encontrar problemas ou quiser melhorar o sistema, consulte nosso Guia de Contribuição para:
- Processo completo de reportar bugs e sugerir melhorias
- Templates padronizados para issues e pull requests
- Diretrizes de código e melhores práticas
- Processo de testing e validação
- Workflow de desenvolvimento e deployment
Quick Start para Contribuições:
# Verificação rápida
python scriptLattes.py exemplo/teste-01.config
jq keys json/*.json # Verificar estrutura JSON
# Teste de regressão
make clean && make test # Limpar cache e testar