Script para extracción de estructura o texto de una norma publicada en el BOE

Javier de la Cueva
Tags: Código fuente.

No digo nada nuevo si señalo el problema de exceso de información contra el que tenemos que luchar todos los días. Una de las herramientas que utilizo para evitarlo es un script en python que ejecuto en consola y que me permite extraer la estructura de una norma jurídica publicada en el Boletín Oficial del Estado. El script es libre (licencia AGPL).

El script tiene dos opciones: la extracción de la estructura de la norma o la norma completa. Con la primera de las opciones, muestra simplemente los nombres de la norma, libros, títulos, capítulos, secciones y artículos. Mediante la segunda de las opciones, extrae la estructura y el texto del articulado. De esta manera, cuando una norma es muy larga, extraigo la estructura con lo que ya tengo una idea de su contenido. Si la norma jurídica me interesa en detalle, extraigo entonces todo su contenido.

Por último, si quiero guardar la norma, utilizo la opción “> nombre-archivo.txt” que dirige la salida de la consola a un archivo en texto plano.

El script hace uso del módulo lxml y selecciona las partes de la norma mediante el uso de Xpath aplicado a la hoja de estilos css de la página web del BOE.

Ejemplos de uso:

# Para extraer sólo la estructura de la norma basta la opción “-u URL
$ python extraer_norma.py -u http://boe.es/aeboe/consultas/bases_datos/doc.php?id=BOE-A-2007-12946

# Para extraer la estructura y contenido de la norma se añaden las opciones “-t -u URL
$ python extraer_norma.py -t -u http://boe.es/aeboe/consultas/bases_datos/doc.php?id=BOE-A-2007-12946

A continuación, el código del script y, más abajo, el resultado de una extracción.

Este es el resultado de la extracción de la LEY 15/2007, de 3 de julio, de Defensa de la Competencia utilizando la orden:

$ python extraer_norma.py -u http://boe.es/aeboe/consultas/bases_datos/doc.php?id=BOE-A-2007-12946