Lattes-soap
Índice
Introdução
O script Lattes-SOAP é responsável pela extração do XML através do webservice disponibilizado pelo CNPq. O webservice utiliza o protocolo SOAP (Simple Object Access Protocol).
Features
- Acesso ao serviço via proxy.
- Criação de um proxy (SOCKS5).
- Compressão dos dados.
- Entrada do identificador de perfis através de um CSV ou banco de dados MySQL.
Features futuras
- Requisição através de CPF ou ID Lattes.
- Download de apenas perfis desatualizados.
Como funciona
O script recebe uma lista de perfis a serem baixados, quando o identificador do perfil recebido for CPF, irá requisitar o ID Lattes correspondente no CNPq. Então irá realizar a requisição do XML de cada perfil, como o perfil é recebido em base64, os processa e, por fim, tem dois componentes como saída:
- O arquivo comprimido é gerado na pasta _COMPRESS_DIR_, seu nome é composto pela hora e atual, o path utilizado e o ".tar.gz".
- Os arquivos XMLs, cada perfil é um XML, são gerados na pasta _XML_DIR_, sendo o nome do arquivo composto pelo ID Lattes + CPF (quando disponível) seguido de ".xml".
Instalação
Veja na página referente à instalação
Configuração
Para se utilizar o script, é necessário ter definido corretamente os parâmetros. O arquivo deve seguir com base no arquivo default default_lattes-soap.json
, localizado em config/default/
. Informações sobre obrigatoriedade e valores padrão estão no arquivo default.
Ambiente
Variáveis relacionados ao ambiente são definidas dentro do código do script, da seguinte maneira:
- LOG_DIR = {raizDoScript}/cache/log
- XML_DIR = {raizDoScript}/cache/xml/{path}
- COMPRESS_DIR = {raizDoScript}/cache/compress/{path}
Parâmetros
O arquivo de configuração geral, fica localizado em config/params. Seus parâmetros são:
- nump: Define o número de processo paralelos para execução do algoritmo. Para saber mais, veja sobre a biblioteca multiprocessing, onde nump define o número de pools.
- Tipo: int
- path: Padrão no caminho para salvar o XML comprimidos e os XMLs. Permite manter o XML de diferentes categorias como de docentes, alunos, técnicos etc. Esse valor será usado como sufixo no _XML_DIR_ e _COMPRESS_DIR_.
- Tipo: str
- query: Consulta SQL a ser realizada no banco de dados para gerar o arquivo com os usuários. Esse parâmetro se torna necessário caso seja definido o parâmetro database.
- Tipo: str
- database: Os parâmetros relacionados ao banco de dados que será usado parar gerar o arquivo com os usuários. Caso não seja definido, será necessário a definição do parâmetro _file_name_.
- host: Define o endereço no qual o banco de dados está hospedado.
- Tipo: str
- Default: Não há.
- database: Define o nome do banco de dados a ser executada a consulta.
- Tipo: str
- Default: Não há.
- user: Define o nome do usuário de acesso ao banco de dados.
- Tipo: str
- Default: Não há.
- password: Define a senha do usuário ao banco de dados.
- Tipo: str
- Default: Não há.
- charset: Define a codificação dos caracteres (charset) utilizada no banco de dados.
- Tipo: str
- Default: Não há.
- host: Define o endereço no qual o banco de dados está hospedado.
- file_name: Necessário quando database não for definido, é o nome do arquivo CSV com a lista de usuários a serem baixados, deve estar localizado em TEMP_DIR. O delimitador de colunas utilizado é definido pelo parâmetro sep.
- Tipo: str
- sep: Separador utilizado no arquivo com os usuários a serem baixados.
- Tipo: str
- xml_purge: Defina como true caso deva remover os XMLs extraídos anteriormente. Remove apenas XMLs antigos presente no mesmo path.
- Tipo: bool
- id_dcl: Parâmetro que define qual tipo de identificador foi utilizado na lista de usuários. Use cpf ou _id_lattes_.
- Tipo: str
- comand_server: Quando for utilizar a criação automática de um proxy SOCKS5, o comando deve ser definido nesse parâmetro. Ele irá criar um subprocesso que será executado até o fim do script. Uma maneira de se utilizar esse parâmetro pode ser vista no arquivo de configuração de exemplo do Lattes-SOAP.
- Tipo: list
- proxies: Quando for necessário utilizar proxy, o dicionário informando o endereço e porta do proxy devem ser definidos aqui. Testado apenas com proxy SOCKS5.
- Tipo: dict
Utilização
Toda informação sobre a execução pode ser encontrado no log, em LOG_DIR/lattes-soap{dataDeExecucao}.log
. Definido corretamente o arquivo de configuração, a execução do script se torna simples.
Executando
Após definir os parâmetros de configuração no arquivo JSON, basta executar o comando abaixo no qual file é o arquivo de configuração.
UNIQf6e7fda5f20f2c92-pre-00000001-QINURetorno
O script retornará 3 dados ao fim de sua execução:
- O dado comprimido localizado em COMPRESS_DIR;
- Dado descomprimido em XML_DIR;
- Log da execução, localizado em LOG_DIR.