Skip to main content

cyberlink-extract

Extrai e-mails, URLs, telefones, CPFs e CNPJs da coluna de histórico de uma planilha XLSX, agrupa as ocorrências por id e gera um arquivo Excel para cada tipo encontrado.

A extração de IP está temporariamente desativada (regex comentado em patterns.py).

Instalação

pip install cyberlink-extract

Uso

cyberlink-extract planilha.xlsx

Com todos os parâmetros:

cyberlink-extract planilha.xlsx \
    --col-id B \
    --col-hist H \
    --linha-inicio 7 \
    --saida ./resultados \
    --blacklist minha_blacklist.csv
Opção Padrão Descrição
arquivo Caminho do .xlsx de entrada (obrigatório)
-i, --col-id B Coluna do id
-c, --col-hist H Coluna do histórico
-l, --linha-inicio 7 Primeira linha lida
-o, --saida . Diretório de saída
--blacklist CSV (uma coluna, sem cabeçalho) com valores exatos a excluir de qualquer tipo (CPF, PHONE, EMAIL, URL, CNPJ)
-q, --quiet Omite o resumo final

Blacklists

Dois filtros de exclusão são aplicados depois da extração por regex:

  • CNPJ de instituições financeiras (sempre ativo): os CNPJs cuja raiz (8 primeiros dígitos) constar em src/cyberlink_extract/data/blacklist_cnpj_padrao.csv são descartados do resultado. Essa lista é embutida no pacote e não pode ser sobrescrita por parâmetro de linha de comando.
  • Blacklist geral do usuário (opcional, --blacklist): um CSV próprio (uma coluna, sem cabeçalho) com valores a excluir. Um valor só é removido se for exatamente igual (após a normalização do tipo) a uma ocorrência encontrada — vale para qualquer tipo (CPF, PHONE, EMAIL, URL, CNPJ), não só CNPJ.

Também funciona como módulo:

python -m cyberlink_extract planilha.xlsx

Saída

Um arquivo por tipo, com as colunas id e o nome do tipo:

  • OCORRENCIA-EMAIL.xlsx
  • OCORRENCIA-URL.xlsx
  • OCORRENCIA-PHONE.xlsx
  • OCORRENCIA-CPF.xlsx
  • OCORRENCIA-CNPJ.xlsx

Cada valor aparece uma única vez por id, mas o mesmo valor pode se repetir em ids diferentes.

Normalização

CPF, CNPJ e telefone são gravados apenas com dígitos, sem pontuação. Telefones com código de país (+55) têm o prefixo removido. E-mails são convertidos para minúsculas. URLs são reduzidas ao domínio: são removidos o esquema (https://, http://, ftp://, file://), o prefixo www. e qualquer path/query/fragmento após o domínio (ex.: https://www.exemplo.com/id/123/ vira exemplo.com).

Uso como biblioteca

from cyberlink_extract import processar_planilha, salvar_todos
from cyberlink_extract.blacklist import (
    carrega_prefixos_cnpj,
    carrega_valores,
    filtra_cnpj_por_prefixo,
    filtra_valores_exatos,
)

resultados, linhas = processar_planilha("planilha.xlsx", col_id="B",
                                        col_hist="H", linha_inicio=7)
print(resultados["CPF"])  # {'id1': {'12345678900': None}, ...}

# blacklist de CNPJ de instituicoes financeiras (por raiz de 8 digitos)
prefixos = carrega_prefixos_cnpj("blacklist_cnpj_padrao.csv")
filtra_cnpj_por_prefixo(resultados, prefixos)

# blacklist geral, por valor exato, em qualquer tipo
valores = carrega_valores("minha_blacklist.csv")
filtra_valores_exatos(resultados, valores)

salvar_todos(resultados, "./resultados")

Licença

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cyberlink_extract-0.2.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cyberlink_extract-0.2.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page