Spanish parliamentary member votes
congreso_votaciones · senado_votaciones
Accountability de acceso público
Documentamos cuándo una institución impide o degrada el acceso técnico reproducible a información pública. Cada entrada conserva señal, fecha, fuente oficial, evidencia y siguiente escalado.
Lectura correcta
Una incidencia prueba un fallo de acceso observado y reproducible. No prueba por sí sola ilegalidad, intención ni corrupción. El historial es append-only: una resolución futura no borra el bloqueo original.
Escala real verificable
congreso_votaciones · senado_votaciones
eurostat_sdmx
placsp_sindicacion
bdns_api_subvenciones
boe_api_legal · congreso_votaciones · senado_votaciones
asamblea_ceuta_diputados · asamblea_extremadura_diputados · asamblea_madrid_ocupaciones · asamblea_melilla_diputados · asamblea_murcia_diputados · congreso_diputados · congreso_votaciones · cortes_aragon_diputados · cortes_clm_diputados · cortes_cyl_procuradores · corts_valencianes_diputats · europarl_meps · infoelectoral_elected_officials · jgpa_diputados · municipal_concejales · parlament_balears_diputats · parlament_catalunya_diputats · parlamento_andalucia_diputados · parlamento_canarias_diputados · parlamento_cantabria_diputados · parlamento_larioja_diputados · parlamento_vasco_parlamentarios · senado_senadores · senado_votaciones
boe_election_candidates
Brechas abiertas
Registro abierto
Ordenadas por estado actual, número de incidencias y hueco de cobertura. Se publican todas las incidencias abiertas del registro fuente.
Ministerio para la Transformación Digital y de la Función Pública / Secretaría General de Administración Digital
Catálogo oficial datos.gob.es accesible, pero el endpoint oficial XLSX de administracionelectronica.gob.es rechaza acceso reproducible: HTTP 302 en bucle bajo --strict-network; probe directo devuelve HTTP 200, content-type=text/html y HTML Request Rejected en lugar de XLSX
https://datos.gob.es/es/catalogo/e05251701-directorio-comun-de-unidades-organicas-y-oficinas-dir3 -> https://administracionelectronica.gob.es/ctt/resources/Soluciones/238/Descargas/Listado%20Unidades%20AGE.xlsx?idIniciativa=238&idElemento=2741
Parlamento de Galicia
HTTP 403 en --strict-network (urllib.error.HTTPError)
https://www.parlamentodegalicia.gal/Composicion/Deputados
Parlamento de Navarra
HTTP 403 en --strict-network (urllib.error.HTTPError)
https://parlamentodenavarra.es/es/composicion-organos/parlamentarios-forales
IGAE / Ministerio de Hacienda (BDNS/SNPSAP)
Payload HTML anti-scraping en endpoint esperado como JSON (Respuesta HTML inesperada para BDNS feed)
https://www.pap.hacienda.gob.es/bdnstrans/GE/es/convocatorias
Dirección General del Patrimonio del Estado / Plataforma de Contratación del Sector Público
Acceso intermitente al archivo oficial: tres HEAD verificados terminan en ConnectionResetError; un diagnóstico Range de un byte devuelve HTTP/1.1 200 Error y content-type=text/html en vez de ZIP. No es bloqueo total: seis archivos mensuales 2025 se descargaron antes el mismo día y el catálogo oficial sigue accesible.
https://contrataciondelsectorpublico.gob.es/sindicacion/sindicacion_643/licitacionesPerfilesContratanteCompleto3_2024.zip
IGAE / Ministerio de Hacienda (BDNS/SNPSAP)
Payload HTML anti-scraping en endpoint esperado como JSON (Respuesta HTML inesperada para BDNS feed)
https://www.pap.hacienda.gob.es/bdnstrans/GE/es/convocatorias
Red Eléctrica / ESIOS
El bloqueo persiste y cambia de HTTP 500 a HTTP 403: respuesta HTML de Incapsula (content-type=text/html) donde se esperaba JSON. No se cargan registros ni se sustituye el fallo por datos de muestra.
https://apidatos.ree.es/es/datos/demanda/evolucion?start_date=2026-08-11T00:00&end_date=2026-08-12T23:59&time_trunc=hour
Ministerio del Interior / Infoelectoral
Acceso intermitente a datos oficiales de candidaturas nominales: el probe API acotado termina tras 30s con 0 bytes y el ZIP 2023 actual termina curl (56) Recv failure: Connection reset by peer, sin partial retenido. Una nueva palanca respaldada por documentación pública oficial probó el contrato histórico infoelectoral.mir.es/docxl/apliext: las tres variantes HTTP/HTTPS exactas agotaron 20s sin entregar ni el primer KiB. El catálogo oficial local conserva 60 archives en cola, 0 aceptados y 0 facts; ningún timeout cuenta como dato.
https://infoelectoral.interior.gob.es/min/convocatorias/tipos/ + https://infoelectoral.interior.gob.es/estaticos/docxl/apliextr/04202305_MUNI.zip + tres variantes históricas exactas bajo infoelectoral.mir.es/docxl/apliext
Senado de España
Probes reproducibles de equivalencia HTTPS devuelven HTTP 403, content-type=text/html y 417/418 bytes, por lo que las URLs históricas HTTP no pueden actualizarse silenciosamente. El corpus contiene 102,172 filas / 1,166 URLs HTTP: 33,683 filas / 484 URLs tienen captura checksum local y 68,489 filas / 682 URLs no. Comando exacto: python3 scripts/audit_vote_source_urls.py --probe-url http://www.senado.es/legis10/votaciones/ses_2_3.xml --probe-url http://www.senado.es/legis12/votaciones/ses_3_23.xml --timeout 30 --enforce-integrity.
https://www.senado.es/legis10/votaciones/ses_2_3.xml + https://www.senado.es/legis12/votaciones/ses_3_23.xml
politicos
Senado de España
Acceso parcial con fallos repetidos HTTP 500 en rutas de legislaturas antiguas: la corrida completa recuperó 6,792/9,084 documentos, dejó 198 fallos permanentes y difirió 2,094; el último pase observó 21 respuestas 5xx directas, abrió 5 circuitos por legislatura/ruta y evitó 2,070 requests posteriores. No es bloqueo total: las 3,607 iniciativas con links conservan al menos un documento descargado.
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?legis=...
Persistencia del bloqueo WAF bajo nueva palanca de retry por status (--retry-http-statuses): intentos acotados 404/500 no recuperan descargas (fetched_ok=0) y muestran drift de cohorte (500 -> 403) sin cierre material. La cola linked-to-votes sube 650 -> 767 filas (incluye cabecera) por expansión estructural sin fetch exitoso; gate de captura manual sigue degraded (strict rc=4).
https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/legis*/expedientes/*/enmiendas/global_enmiendas_vetos_*.xml
Bloqueo WAF persistente con mejora parcial bajo nueva palanca de archivo (--archive-fallback-http-statuses 403,404,500): retry acotado (candidate_urls=40) recupera fetched_ok=17, pero la cola accionable sigue abierta (663 URLs linked-to-votes, strict-empty rc=4) y persiste señal 403/500.
https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?...
Persistencia del bloqueo WAF pese a nuevo retry ampliado con fallback archivístico (limit-initiatives=80, candidate_urls=112, archive_fetched_ok=14, fetched_ok=14): la cola linked-to-votes mejora (663 -> 649) pero permanece no vacía (strict-empty rc=4); la captura manual sigue no utilizable (usable_captures_total=0, status=degraded, strict rc=4).
https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?...
Retry acotado de sprint con cookie seed sin mejora (candidate_urls=50, fetched_ok=0); cola accionable linked_to_votes permanece en 680 URLs (345 iniciativas), con bloqueo persistente (blocked_403_urls=607, blocked_500_urls=71) y checks strict-empty abiertos (rc=4)
https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?...
Verificación contractual de palanca (AI-OPS-236): gate de validez de captura manual permanece degraded (captures_total=2, usable_captures_total=0, access_denied_captures_total=2, cookies_domain_total=0, strict_fail_reasons=[no_usable_capture], strict rc=4). Se confirma ausencia de palanca utilizable antes de retry de red.
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/
Nuevo intento de palanca con runtime corregido (AI-OPS-235): capturas Playwright automáticas (detalle + raíz) completan ejecución pero quedan en Access Denied y emiten cookie_count=0 (senado_domain_cookie_count=0), por lo que el check de lever permanece degraded (no_new_lever=true, strict_fail_reasons=[no_domain_cookies,no_unexpired_persistent_cookies], strict rc=4). Retry estricto con esa captura no mejora KPIs (candidate_urls=50, fetched_ok=0, missing_urls=680, zero_doc_initiatives=25, delta 0 vs AI-OPS-234).
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/ + https://www.senado.es/web/ficopendataservlet?...
Verificación explícita de no_new_lever (AI-OPS-234): estado de cookie seed degraded (no_new_lever=true, age_hours=204.153, strict_fail_reasons=[cookie_file_stale], strict rc=4) y retry estricto acotado sin mejora (candidate_urls=50, fetched_ok=0, missing_urls=680, zero_doc_initiatives=25, delta 0 vs AI-OPS-233).
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/legis*/expedientes/*/enmiendas/global_enmiendas_vetos_*.xml
Escalado estricto ampliado (AI-OPS-233) sin mejora de cierre: retry limit-initiatives=50 con candidate_urls=76, fetched_ok=0, playwright_init_error=null; perfil WAF post-run con missing_urls=680 (delta 0), missing_initiatives=345 (delta 0), zero_doc_initiatives=25 (delta 0), y desplazamiento 500 -> 403 (blocked_403_urls=607, blocked_500_urls=71).
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/legis*/expedientes/*/enmiendas/global_enmiendas_vetos_*.xml
Captura canónica del bloqueo remoto por cohorte (AI-OPS-232): missing_urls=680, missing_initiatives=345, blocked_403_urls=588 (blocked_403_rate=0.864706), blocked_500_urls=90, zero_doc_initiatives=25. Retry acotado con cookie seed mantiene fetched_ok=0 (candidate_urls=50) y confirma persistencia de HTTP 403 sin fallo de runtime (playwright_init_error=null).
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/legis*/expedientes/*/enmiendas/global_enmiendas_vetos_*.xml
Reintento acotado con red real/cookie/profile en AI-OPS-225 sin recuperaciones (fetched_ok=0): predominio HTTP 403/500 y cola accionable al alza (4599 -> 4655). Palanca browser además falló en bootstrap local de Playwright (AttributeError: PlaywrightContextManager ... _playwright), mitigada con circuit-breaker para no repetir init por URL.
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?... + https://www.senado.es/legis*/expedientes/*/enmiendas/global_enmiendas_vetos_*.xml
Bloqueo intermitente (ventanas con HTTP 403/500 alternadas con ventanas 200): la recuperación escaló hasta 8204/8323 (98.57%), pero el remanente (119) quedó concentrado en URLs global_enmiendas_vetos; retries acotados, daemon anti-stall y fallback de archivo (Wayback) siguen sin recuperaciones (404 persistente, sin snapshots públicas encontradas). Triage actual: 119 casos likely_not_expected_redundant_global_url y 0 accionables (cola redundante; hay alternativas BOCG descargadas por iniciativa).
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?...
Persisten bloqueos con HTTP 403/HTTP 500 al reintentar la cola de iniciativas con --retry-forbidden (sin perfil, con Playwright y con cookie-file)
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + http://www.senado.es/legis9/expedientes/620/xml/...
Bloqueo WAF/intermitencia upstream: hubo bypass parcial con perfil Playwright y priorización (avance a 235/647 iniciativas linkeadas con docs), pero el remanente sigue en HTTP 403/500 en runs reproducibles
https://www.senado.es/web/actividadparlamentaria/iniciativas/detalleiniciativa/index.html?... + https://www.senado.es/web/ficopendataservlet?...
Congreso de España
HTTP 403 Access Denied en URLs concretas de evento de votación usadas por el seed batch de implicaciones ciudadanas; respuesta HTML de denegación (content-type=text/html) en lugar de JSON oficial esperado
https://www.congreso.es/webpublica/opendata/votaciones/Leg15/Sesion*/Votacion*/VOT_*.json
HTTP 403 en endpoint de listado de votaciones; respuesta HTML en vez de JSON-discovery esperada
https://www.congreso.es/es/opendata/votaciones
Cortes de Aragon
HTTP 403 in GitHub Actions strict-network ingest (urllib.error.HTTPError)
https://www.cortesaragon.es/ diputado listing views used by connector
Senado de España
HTTP 403 in GitHub Actions strict-network ingest (urllib.error.HTTPError)
https://www.senado.es/web/ficopendataservlet?... (tipoFich=4, 6, 2, 1)