Ferramenta para extração de dados de processos no SEI da ANP
Project description
📚 Biblioteca anpseisearch
A biblioteca anpseisearch foi desenvolvida para permitir consultas automatizadas de processos e documentos no SEI da ANP (Agência Nacional do Petróleo, Gás Natural e Biocombustíveis). Ela permite que você busque protocolos, documentos e processos usando filtros detalhados, retornando os resultados de forma organizada em listas de registros com informações como protocolo, descrição, unidade, data e link direto para o processo/documento.
Esta biblioteca é especialmente útil para profissionais ou pesquisadores que precisam monitorar processos ou extrair dados do SEI de maneira rápida e automatizada, sem precisar acessar manualmente o sistema.
1️⃣ Pré-requisitos
Antes de começar a usar a biblioteca, é necessário instalar o Python, que é a linguagem de programação em que a biblioteca foi desenvolvida. Também precisaremos do pip, que é a ferramenta que permite instalar bibliotecas no Python.
a) Instalar Python
- Acesse o site oficial do Python: https://www.python.org/downloads/
- Baixe a versão mais recente recomendada para o seu sistema operacional (Windows, macOS ou Linux).
- Durante a instalação, certifique-se de marcar a opção "Add Python to PATH", pois isso permitirá que você execute comandos do Python a partir do terminal ou prompt de comando.
- Conclua a instalação seguindo as instruções da tela.
Para confirmar se o Python foi instalado corretamente, abra o terminal (no Windows, digite cmd; no macOS ou Linux, abra o Terminal) e execute:
python --version
Você deverá ver uma resposta semelhante a:
Python 3.11.6
Se você receber uma mensagem de erro, o Python não está corretamente instalado ou o PATH não foi configurado. Nesse caso, revise o passo 3 da instalação.
b) Instalar pip
O pip normalmente é instalado junto com o Python. Para verificar se ele está disponível, execute no terminal:
pip --version
Você deverá ver algo semelhante a:
pip 23.2.1 from ...
Caso o pip não esteja instalado, siga as instruções oficiais para instalá-lo: https://pip.pypa.io/en/stable/installation/
O pip é necessário porque ele permite instalar a biblioteca anpseisearch e suas dependências automaticamente.
2️⃣ Instalar a biblioteca anpseisearch
A biblioteca pode ser instalada via PyPI
Se a biblioteca estiver disponível no repositório oficial do Python, você pode instalar com um único comando:
pip install anpseisearch
Esse comando fará o download da biblioteca e de todas as dependências necessárias.
3️⃣ Como usar a biblioteca
A biblioteca funciona em três etapas principais: criar o pesquisador, definir filtros de pesquisa e executar a pesquisa. A seguir, apresentamos um exemplo completo que utiliza múltiplos filtros.
from anpseisearch import SeiRegisterSearcher, SeiProcessSearchError
# Criar a instância do pesquisador
searcher = SeiRegisterSearcher()
# Definir os filtros da pesquisa
filters = {
"numero_protocolo_sei": "5288361",
"texto_pesquisa": "Fiscalização de contratos",
"incluir_processos": True,
"incluir_documentos_gerados": True,
"incluir_documentos_recebidos": False,
"tipo_processo": "Aquisição de Bens e Serviços: Licitação",
"tipo_documento": "Acordo de Cooperação Técnica",
"data_inicio": "2025-09-05",
"data_fim": "2025-09-07",
}
# Aplicar os filtros
searcher.set_filters(filters)
# Executar a pesquisa e capturar resultados
try:
resultados = searcher.execute_search(page=0, rows_per_page=50)
for r in resultados:
print(f"Protocolo: {r['protocolo']}")
print(f"Descrição: {r['descricao']}")
print(f"Unidade: {r['unidade']}")
print(f"Data: {r['data']}")
print(f"Link: {r['link']}")
print("-" * 40)
except SeiProcessSearchError as e:
print("Erro na consulta ao SEI:", e)
🔹 Explicação detalhada de cada parte do código
Importar e criar a instância do pesquisador
from anpseisearch import SeiRegisterSearcher, SeiProcessSearchError
searcher = SeiRegisterSearcher()
SeiRegisterSearcher→ é a classe principal da biblioteca. Ela encapsula toda a lógica de busca, montagem de filtros e parsing dos resultados.SeiProcessSearchError→ exceção personalizada que será lançada caso a requisição ao SEI falhe.searcher = SeiRegisterSearcher()→ cria uma instância do pesquisador com os parâmetros padrão, pronta para receber filtros e executar a pesquisa.
Definir filtros
filters = {
"numero_protocolo_sei": "5288361",
"texto_pesquisa": "Fiscalização de contratos",
"incluir_processos": True,
"incluir_documentos_gerados": True,
"incluir_documentos_recebidos": False,
"tipo_processo": "Aquisição de Bens e Serviços: Licitação",
"tipo_documento": "Acordo de Cooperação Técnica",
"data_inicio": "2025-09-05",
"data_fim": "2025-09-07",
}
numero_protocolo_sei→ filtra pelo número do protocolo exato.texto_pesquisa→ pesquisa por palavras-chave no conteúdo do processo/documento.- Filtros booleanos (
incluir_processos, etc.) → definem se você quer incluir processos, documentos gerados ou recebidos. OTrueindica que deseja incluir,Falseque não deseja incluir. tipo_processoetipo_documento→ filtram apenas os registros daquele tipo específico. Os valores devem existir nos arquivosprocess_ids.jsonedocument_ids.json.data_inicioedata_fim→ definem o intervalo de datas da pesquisa. Devem estar no formatoYYYY-MM-DDe são obrigatórios para pesquisas temporais.
searcher.set_filters(filters)
- Aplica os filtros definidos ao objeto pesquisador.
- Constrói automaticamente o campo
partialfieldsque será usado para filtrar apenas os registros relevantes no SEI. - Converte filtros booleanos nos códigos esperados pelo SEI (
P,G,R). - Substitui os nomes dos tipos de processo e documento pelos IDs correspondentes.
Executar a pesquisa e processar resultados
resultados = searcher.execute_search(page=0, rows_per_page=50)
page→ número da página da pesquisa. Começa em0para a primeira página.rows_per_page→ número de resultados que deseja retornar por página.
O método retorna uma lista de dicionários, onde cada dicionário representa um registro encontrado:
{
"protocolo": "1234567",
"descricao": "Aquisição de equipamentos - Fiscalização",
"unidade": "GAB/ANP",
"data": "05/09/2025",
"link": "https://sei.anp.gov.br/sei/controlador.php?...",
}
Exibir os resultados
for r in resultados:
print(f"Protocolo: {r['protocolo']}")
print(f"Descrição: {r['descricao']}")
print(f"Unidade: {r['unidade']}")
print(f"Data: {r['data']}")
print(f"Link: {r['link']}")
print("-" * 40)
- Percorre cada registro retornado e exibe as informações de forma organizada.
- Facilita a leitura dos resultados e permite identificar rapidamente protocolos, datas e links para acesso direto.
Tratamento de erros
except SeiProcessSearchError as e:
print("Erro na consulta ao SEI:", e)
- Captura falhas na requisição HTTP ou erros do SEI.
- Evita que o programa quebre e permite exibir uma mensagem clara sobre o problema.
Observações importantes
- As datas (
data_inicioedata_fim) são obrigatórias e devem estar no formatoYYYY-MM-DD. - O campo
partialfieldsé gerado automaticamente com base nos filtros preenchidos, e somente os filtros preenchidos são incluídos na query. - Se não houver resultados para a pesquisa, a biblioteca retorna uma lista vazia
[]. - Valores incorretos para
tipo_processooutipo_documentoserão ignorados, portanto verifique os arquivosprocess_ids.jsonedocument_ids.jsonantes de definir os filtros.
🔗 Links úteis
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anpseisearch-0.1.1.tar.gz.
File metadata
- Download URL: anpseisearch-0.1.1.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5f18f354937f108359c4f0b2224e0d55f28418e5a592e08bd4f1e1081302348
|
|
| MD5 |
a94b174dd7fc3da0438d66ddc247a89f
|
|
| BLAKE2b-256 |
9eefe28a596bd3f5df29ea9b7b09462333173f420743fef56ee11bc01d8a6d5c
|
File details
Details for the file anpseisearch-0.1.1-py3-none-any.whl.
File metadata
- Download URL: anpseisearch-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d165645af60f4e6dc7c5f4f1b6820c282b9c053d66ea02946e58fae195c7d00b
|
|
| MD5 |
813bd24479daac31ae73734b4e5c411e
|
|
| BLAKE2b-256 |
6824eeed812086f72db9ef328e6f1a87f925fb82037b603cd7f732377106b1e9
|