100 lines
5.3 KiB
Python
100 lines
5.3 KiB
Python
"""
|
|
Registro de todos os 27 scrapers das Juntas Comerciais do Brasil.
|
|
Cada entrada define estado, junta, URL e scraper a ser usado.
|
|
|
|
URLs verificadas e atualizadas em 2026-02-25.
|
|
Scrapers customizados têm lógica específica para cada site.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from typing import Type
|
|
|
|
from .base_scraper import AbstractJuntaScraper
|
|
from .generic_scraper import GenericJuntaScraper
|
|
|
|
# Scrapers customizados — lógica específica por estado
|
|
from .jucesp import JucespScraper # SP
|
|
from .jucerja import JucerjaScraper # RJ (Playwright)
|
|
from .jucemg import JucemgScraper # MG
|
|
from .jucec import JucecScraper # CE
|
|
from .jucis_df import JucisDfScraper # DF
|
|
from .jucisrs import JucisrsScraper # RS (Playwright - JUCISRS, domínio antigo aposentado)
|
|
from .jucepar import JuceparScraper # PR (URL migrou para juntacomercial.pr.gov.br)
|
|
from .jucesc import JucescScraper # SC (sistema dedicado leiloeiros.jucesc.sc.gov.br)
|
|
from .juceb import JucebScraper # BA (URL migrou para ba.gov.br/juceb)
|
|
from .jucepe import JucepeScraper # PE (Playwright - portal.jucepe.pe.gov.br)
|
|
from .jucepa import JucepaScraper # PA (Drupal node/171)
|
|
from .jucema import JucemaScraper # MA (múltiplas tentativas de URL)
|
|
from .jucepi import JucepiScraper # PI (URL migrou para portal.pi.gov.br/jucepi)
|
|
from .jucern import JucernScraper # RN (HTTP com query string)
|
|
from .jucep import JucepScraper # PB (JUCEP - domínio migrou para jucep.pb.gov.br)
|
|
from .juceal import JucealScraper # AL (URL correta: /servicos/leiloeiros)
|
|
from .jucer import JucerScraper # RO (URL migrou para rondonia.ro.gov.br/jucer)
|
|
from .jucap import JucapScraper # AP (HTTP - cert TLS inválido)
|
|
from .juceac import JuceacScraper # AC (URL correta: /leiloeiro/ singular)
|
|
from .jucetins import JucetinsScraper # TO (JUCETINS - URL migrou para to.gov.br/jucetins)
|
|
|
|
|
|
def _make(estado: str, junta: str, url: str, municipio_default: str = None) -> Type[AbstractJuntaScraper]:
|
|
"""Cria dinamicamente uma classe de scraper genérico para o estado."""
|
|
attrs = {
|
|
"estado": estado,
|
|
"junta": junta,
|
|
"url": url,
|
|
"municipio_default": municipio_default,
|
|
}
|
|
return type(f"{junta}Scraper", (GenericJuntaScraper,), attrs)
|
|
|
|
|
|
# Mapeamento completo: UF -> Classe de Scraper
|
|
# Todos os 27 estados com URLs verificadas e atualizadas em 2026-02-25
|
|
SCRAPERS: dict[str, Type[AbstractJuntaScraper]] = {
|
|
# Região Sudeste
|
|
"SP": JucespScraper, # JUCESP - https://www.institucional.jucesp.sp.gov.br/tradutores-leiloeiros.html
|
|
"RJ": JucerjaScraper, # JUCERJA - https://www.jucerja.rj.gov.br/AuxiliaresComercio/Leiloeiros (JS)
|
|
"MG": JucemgScraper, # JUCEMG - https://jucemg.mg.gov.br/pagina/139/leiloeiros-oficiais
|
|
"ES": _make("ES", "JUCEES", "https://jucees.es.gov.br/leiloeiros", "Vitória"),
|
|
|
|
# Região Sul
|
|
"RS": JucisrsScraper, # JUCISRS - https://sistemas.jucisrs.rs.gov.br/leiloeiros/ (JS)
|
|
"PR": JuceparScraper, # JUCEPAR - https://www.juntacomercial.pr.gov.br/Pagina/LEILOEIROS-OFICIAIS
|
|
"SC": JucescScraper, # JUCESC - https://leiloeiros.jucesc.sc.gov.br/site/
|
|
|
|
# Região Nordeste
|
|
"BA": JucebScraper, # JUCEB - https://www.ba.gov.br/juceb/home/matriculas-e-carteira-profissional/leiloeiros
|
|
"PE": JucepeScraper, # JUCEPE - https://portal.jucepe.pe.gov.br/leiloeiros (JS)
|
|
"CE": JucecScraper, # JUCEC - https://www.jucec.ce.gov.br/leiloeiros/
|
|
"MA": JucemaScraper, # JUCEMA - múltiplas URLs tentadas
|
|
"PI": JucepiScraper, # JUCEPI - https://portal.pi.gov.br/jucepi/leiloeiro-oficial/
|
|
"RN": JucernScraper, # JUCERN - http://www.jucern.rn.gov.br/Conteudo.asp?TRAN=ITEM&TARG=8695...
|
|
"PB": JucepScraper, # JUCEP - https://jucep.pb.gov.br/contatos/leiloeiros
|
|
"AL": JucealScraper, # JUCEAL - http://www.juceal.al.gov.br/servicos/leiloeiros
|
|
"SE": _make("SE", "JUCESE", "https://jucese.se.gov.br/leiloeiros/", "Aracaju"),
|
|
|
|
# Região Centro-Oeste
|
|
"DF": JucisDfScraper, # JUCIS-DF - https://jucis.df.gov.br/leiloeiros/
|
|
"GO": _make("GO", "JUCEG", "https://goias.gov.br/juceg/", "Goiânia"),
|
|
"MT": _make("MT", "JUCEMAT", "https://www.jucemat.mt.gov.br/leiloeiros", "Cuiabá"),
|
|
"MS": _make("MS", "JUCEMS", "https://www.jucems.ms.gov.br/empresas/controles-especiais/agentes-auxiliares/leiloeiros/", "Campo Grande"),
|
|
|
|
# Região Norte
|
|
"PA": JucepaScraper, # JUCEPA - https://www.jucepa.pa.gov.br/node/171
|
|
"AM": _make("AM", "JUCEA", "https://www.jucea.am.gov.br/leiloeiros/", "Manaus"),
|
|
"RO": JucerScraper, # JUCER - https://rondonia.ro.gov.br/jucer/lista-de-leiloeiros-oficiais/
|
|
"RR": _make("RR", "JUCERR", "https://jucerr.rr.gov.br/leiloeiros/", "Boa Vista"),
|
|
"AP": JucapScraper, # JUCAP - http://www.jucap.ap.gov.br/leiloeiros (HTTP - TLS inválido)
|
|
"AC": JuceacScraper, # JUCEAC - https://juceac.ac.gov.br/leiloeiro/
|
|
"TO": JucetinsScraper, # JUCETINS - https://www.to.gov.br/jucetins/leiloeiros/152aezl6blm0
|
|
}
|
|
|
|
|
|
def get_all_scrapers() -> list[AbstractJuntaScraper]:
|
|
"""Retorna instâncias de todos os scrapers."""
|
|
return [cls() for cls in SCRAPERS.values()]
|
|
|
|
|
|
def get_scraper(estado: str) -> AbstractJuntaScraper | None:
|
|
"""Retorna o scraper para um estado específico (UF)."""
|
|
cls = SCRAPERS.get(estado.upper())
|
|
return cls() if cls else None
|