¿El BOE por RSS?

La necesidad es la madre de las soluciones. Una combinación de dos circunstancias,

  1. Dentro de mes y medio, si todo va bien, seré padre por segunda vez.
  2. En breve entrará en vigor la Ley de Igualdad en España (texto completo).

ha provocado que me interese por el BOE. Como sabéis, la ley en cuestión no será efectiva hasta el día siguiente de su publicación en el Boletín. Y con mi inclinación tecnológica, me pregunto: ¿tiene el BOE una fuente RSS? Me interesa conocer cuándo empieza mi derecho a disfrutar de los famosos «15 días de baja paternal» (la historia completa es más compleja, pero eso no es el motivo de este cuento).

Respuesta: claro… que no. El BOE vende un servicio de alertas llamado BOELex, que no tiene un coste muy alto y permite recibir avisos de publicación de leyes en tu correo electrónico. Pero yo no necesito tanto; también tengo algo de hacker (bueno, lo intento), así que la idea del día es:

Crear una fuente RSS sobre una búsqueda del BOE

Si el BOE no publica fuentes RSS, habrá que inventárselas. Para eso, viene al pelo RSSxl, una pasarela HTML/RSS. En beta, como todo, pero mi cerebro está en alpha todavía, así que servirá. Por tanto,

Primero: realizar la búsqueda que queremos en el BOE. Para ello, buscamos el enlace de búsqueda avanzada. Bastará con especificar una palabra en el título, por ejemplo, «igualdad», y otra en el departamento emisor (en este caso, «jefatura», por la Jefatura del Estado). Podemos también poner una fecha de publicación; si no, se nos irá hacia atrás hasta el principio de los tiempos, y tal vez antes. Ponemos «01/01/2007» y «31/12/2007» en los campos correspondientes. Pulsamos «Buscar».

Ahora tenemos la búsqueda en pantalla. No nos van a interesar los elementos gráficos, así que podemos pulsar el enlace «Ir a versión adaptada» que aparece en la esquina superior izquierda de la pantalla (esto es opcional). Veremos que tenemos una URL que tiene, en su query, todos los parámetros de la búsqueda. ¡Puede solicitarse una búsqueda en el BOE mediante un GET de HTTP! Esto facilita las cosas (y yo soy muy vago).

Segundo: en la página de RSSxl, introducir la URL obtenida en Page URL. Como RSSxl es un scraper, necesita cierta información para delimitar el contenido de las entradas RSS que creará. Así que…

Tercero: mirar el código HTML de la página de resultados del BOE. Tras hacer una búsqueda cualquiera, vemos que la parte que nos interesa es:

<div class="BoeSumarioBD">

<a name="contenido"></a>

<h1>B&#xFA;squeda en BOE</h1>
<h5>Resultados 1 a 2 de 2</h5>
<h2>MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES (BOE de 15/03/2007 - Secci&#xF3;n III)</h2>
<h3>Resoluci&#xF3;n de 28 de febrero de 2007, de la Secretar&#xED;a General Técnica, por la que se publica el Convenio de colaboraci&#xF3;n entre el Instituto de la Mujer y el Servicio Gallego de Promoci&#xF3;n de la Igualdad del Hombre y de la Mujer.</h3>

<div class="puntoHTML enlacesDoc"><a href="doc.php?coleccion=indilex&amp;id=2007/05553&txtlen=664">M&#xE1;s...</a></div>

<h2>MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES (BOE de 26/01/2007 - Secci&#xF3;n II)</h2>
<h3>Orden TAS/77/2007, de 17 de enero, por la que se dispone el nombramiento, por el procedimiento de libre designaci&#xF3;n, como Subdirector General para la Prevenci&#xF3;n de Riesgos Laborales y Pol&#xED;ticas de Igualdad, de don Adri&#xE1;n González Martín.</h3>
<div class="puntoHTML enlacesDoc"><a href="doc.php?coleccion=personal&amp;id=2007/01626&txtlen=693">M&#xE1;s...</a></div>

</div>

Vemos que los resultados de búsqueda tienen un título (delimitado por etiquetas <h2>) y un contenido (delimitado por <h3>). Además, hay un enlace. Los caracteres acentuados salen como entidades en hexadecimal, pero consideremos eso un problemilla estético.

Cuarto: rellenar en RSSxl los campos Start Item String con el valor «h2«, y End Item String con «/div» (en general, los valores que introduzcamos aquí no tienen que ser HTML bien formado; ¡pueden ser incluso expresiones regulares!). Así abarcamos una entrada completa.

Quinto: añadamos la información cosmética. Para la descripción de los elementos RSS, los campos Start Description String y End Description String llevarían los valores «h3» y «/h3«. Es interesante delimitar la búsqueda al bloque que contiene los resultados, lo que se hace fácilmente poniendo Start String a «BOESumarioBD«. También puse Link Number a 1, pero no noté cambios.

Sexto: pulsamos Generate RSS, con lo que obtendremos la URL de una fuente RSS que nos vale. Más o menos.

El resultado es este enlace, al que nos podremos suscribir con un lector RSS. Yo uso Firefox, así que me puedo suscribir mediante los marcadores dinámicos (live bookmarks).

Hay problemas, como en toda chapucilla tecnológica. Los caracteres acentuados aparecen como entidades HTML en hexadecimal. Más importante aún, los enlaces no funcionan. Por más vueltas que le di a RSSxl, no conseguí arreglar esto.

Hasta que (continuará)…