ScriptLattes
No description available
Install / Use
/learn @jpmenachalco/ScriptLattesREADME
scriptLattes
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).
✨ Principais Funcionalidades Implementadas
🔄 Extração Aprimorada de Projetos
- 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
🎯 Áreas de Atuação Melhoradas
- 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
📄 Exportação JSON Abrangente
- 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
🔧 Melhorias Técnicas
- 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
Pré-requisitos
- 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)
Instalação Rápida (Recomendada)
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 install
Este 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
Outros comandos úteis do Makefile:
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 ChromeDriver
Instalação Manual (Alternativa)
1. Clone este repositório para o seu computador
git clone https://github.com/jpmenachalco/scriptLattes.git
2. Navegue até o diretório do projeto
cd scriptLattes
3. Crie um ambiente virtual
python -m venv venv
Ative o ambiente virtual no Windows
venv\Scripts\activate
Ative o ambiente virtual no Linux/Mac
source venv/bin/activate
4. Instale as dependências
pip install -r requirements.txt
5. Configure o ChromeDriver manualmente
Baixe o ChromeDriver correspondente à versão do seu navegador em Chrome for Testing. É importante que as versões sejam compatíveis.
Execução do Programa
Com Makefile (ambiente virtual gerenciado automaticamente):
make test
Manual (certifique-se de que o ambiente virtual está ativado):
source venv/bin/activate # Linux/Mac
python3 scriptLattes.py exemplo/teste-01.config
Estrutura de Saída
O scriptLattes gera vários tipos de saída para análise dos dados extraídos:
Relatórios HTML
- 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
Novidade: Exportação JSON Individual Completa
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/*.json
Melhorias 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 }
Arquivos de Dados Estruturados
- CSV/Excel: Tabelas exportáveis para análise em planilhas
