Extractores legales: BOE, boletines autonómicos y congreso
El stack incluye un subsistema completo de monitorización legal que cubre publicaciones oficiales nacionales y autonómicas. La arquitectura separa scrapers específicos (con lógica adaptada a cada fuente) de un extractor universal que sirve como fallback.
Scrapers específicos
| Clave | Fuente |
|---|---|
| boe | BOE — API JSON oficial |
| congreso / senado | Congreso y Senado de España |
| boa_aragon | BOA Aragón — API JSON |
| boc_cantabria_json | BOC Cantabria — API JSON |
| boja_rss | BOJA Andalucía — RSS |
| regional_rss | Asturias, Canarias, Castilla-La Mancha, Castilla y León, Extremadura, Galicia, Illes Balears, La Rioja, Melilla, Murcia, Navarra, País Vasco, Valencia, Ceuta |
Extractor universal
Para fuentes sin scraper dedicado, UniversalLegalScraper descubre PDFs en una página mediante selector CSS configurable, opcionalmente con renderizado JavaScript vía Playwright:
# En la configuración de la fuente:
{
"extractor_key": "universal",
"url": "https://portal-legal.es/publicaciones",
"pdf_selector": "a[href$='.pdf']",
"link_pattern": "disposicion-\d+",
"requires_js": true,
"max_depth": 1,
"max_pdf_size_mb": 50
}
Extracción de texto desde PDF
Los PDFs se procesan con PyMuPDF. El texto extraído se almacena en el campo legal_text con un límite de 50.000 caracteres para no saturar la base de datos. Los metadatos del PDF (autor, fecha de creación, número de páginas) se guardan en un campo separado.
Los documentos legales entran al mismo pipeline de normalización que el resto de fuentes, lo que permite correlacionarlos con noticias relacionadas y detectar señales cuando se publican disposiciones relevantes para proyectos monitorizados.