La tarea
La startup necesitaba la lista más completa posible de sitios de contenido de la zona .co.uk —blogs, sitios de noticias y otras plataformas editoriales— como base de un corpus de entrenamiento. El valor estaba precisamente en la exhaustividad y la limpieza: captar todos los sitios de contenido sin arrastrar a la lista webs comerciales ni dominios basura.
Qué hicimos y qué datos recopilamos
Recorrimos la zona de dominios, seleccionamos los sitios activos y recogimos para cada uno las señales de sitio de contenido: estructura de secciones, presencia de feeds y RSS, frecuencia de publicación y temática. El inglés era condición obligatoria de inclusión: los sitios de la zona en otros idiomas se descartaban. La parte de noticias se contrastaba además con el índice de Google News; así confirmamos y completamos los medios que son de noticias con certeza.
Luego fuimos por el camino inverso: no solo buscar «nuestros» sitios, sino limpiar activamente lo sobrante:
- quitamos de la lista los sitios de empresas presentes en Google Maps en categorías que no nos interesan (tiendas, servicios, hostelería, etc.); así se descartaron webs comerciales que, por estructura, podrían pasar por sitios de contenido;
- filtramos los sitios con puntuación cero en los servicios SEO: ahí casi seguro hay basura o dominios abandonados.
Además del propio registro de dominios (con su tipo: blog / noticias), recopilamos también las páginas HTML de esos sitios para el corpus.
Dificultades y cómo las resolvimos
Primero, la exhaustividad de la zona: no existe una lista pública completa. Reunimos el registro a partir de varias fuentes y lo contrastamos con Google News para cerrar los huecos de la parte de noticias.
Segundo —lo clave—: separar los sitios de contenido de los comerciales. A esa escala hay pocas señales positivas de «esto es un blog o un medio», así que invertimos el problema y restamos los dominios claramente comerciales cruzándolos con Google Maps: si el dominio pertenece a un negocio de una categoría irrelevante, no es nuestro sitio.
Tercero, la basura y los sitios abandonados. Los descartamos por puntuación cero en los servicios SEO, para que el corpus no recogiera ruido.
El resultado
La startup recibió tanto un registro limpio de los dominios de contenido de la zona (blogs y noticias, sin comercio ni basura) como el contenido en sí: un conjunto de páginas HTML comprimidas en gzip y almacenadas en un almacenamiento de objetos tipo S3 al que dimos acceso. Es decir, un corpus listo para usar, no una simple lista de sitios.
Servicios en este caso: Base de datos de dominios · Extracción de artículos de prensa · Base de datos de medios · Extracción de datos de Google Maps · Datos para IA/ML · DaaS y datos vía API
Materiales útiles: Parseo de RSS · Rastreo de la estructura del sitio · Cómo recopilar datos de un sitio