Skip to content

Latest commit

 

History

History

docs

Boc·ajarro

Índice

  1. Archivo de boletines
  2. Índices anuales
  3. Índices de boletines
  4. Artículos de boletines

Procesos no destructivos

Boc·ajarro separa la descarga del procesamiento de los datos. Cuando se descarga contenido de una página, los datos se guardan exactamente como fueron descargados.

Los procesos que se ejecutan más tarde sobre los datos descargados, crean nuevos registros en tablas específicas para datos procesados, sin modificar en ningún momento lo descargado.

Reejecuciones parciales

Esto facilita que en caso de fallo, o de mejora de los algoritmos de procesamiento, no sea necesaria una nueva ejecución entera del proceso, pudiendo ejecutarse solo las partes que hayan cambiado.

Auditorías a posterior

Además de facilitar las reejecuciones de los procesos en caso de fallo, la no destructividad también facilita la auditoría de los procesos, al poder comprobarse los mismos desde su entrada original de datos.

Estructura interna

La tabla page

La tabla page guarda contenidos de páginas descargadas del boletín, sin importar de qué tipo de página se trata. Los datos que se guardan de cada página son:

  • id identificador único de la descarga.
  • name nombre del recurso descargado.
  • url dirección en la que se encontró el contenido descargado.
  • content el contenido (HTML) descargado.
  • created_at la fecha y hora en la que se realizó la descarga.

Comprobación de unicidad

Las páginas del Boletín Oficial de Canarias, en general, no cambian una vez son publicadas. Por lo que es de esperar que si descargamos una de ellas más de una vez, obtengamos los mismos datos.

Para mantener controlado el tamaño de la base de datos, durante la descarga de páginas se comprueba si el contenido descargado es idéntico al último contenido que se descargó de esa misma página y, de ser así, vincula ambas descargas dejando vacío el campo contenido de la nueva.

Note

El vínculo entre dos registros se hace únicamente si son contiguos. Es decir, si no hay más registros del mismo tipo entre medias con diferente contenido.

El campo que se utiliza para el vínculo es:

  • shared_content_with_page_id que contiene el identificador de la siguiente descarga del mismo tipo en la que se encontró el mismo contenido.

La tabla link

Muchas de las páginas que descargamos del Boletín, las descargamos para extraer enlaces de ellas para, más tarde, seguir esos enlaces hasta llegar a los artículos; que es lo que realmente queremos descargar.

Los enlaces descargados se guardan en la tabla link, donde se guardan estos campos:

  • id identificador único del enlace.
  • type tipo de enlace.
  • page_id identificador de la página en la que se encontró el enlace.
  • url enlace en versión absoluta.
  • created_at fecha y hora a la que se procesó el enlace.

El tipo de enlace puede tener uno de estos valores:

  1. Root: raíz del sitio web del Boletín Oficial de Canarias.
  2. Robots: fichero robots.txt con detalle de páginas bloqueadas para buscadores.
  3. Archive: artchivo de boletines anuales publicados.
  4. YearIndex: índices de cada uno de los boletines publicados cada año.
  5. BulletinIndex: índece con el contenido de cada uno de los boletines.
  6. BulletinArticle: artículos publicados.