domingo, noviembre 11, 2012

El buscador automatizado de partidas de ajedrez

Llevaba tiempo haciendo pequeñas chapuzas que me permitieran hacer un trabajo de recopilación de partidas de ajedrez de forma automática. La tarea era complicada por varias razones, primero reconocer dentro del contenido de una página web que hay una partida y luego encontrar un sistema que almacene la partida en una base de datos, detectando duplicidades y eliminando partidas de jugadores con ranking bajo.

Gracias a los consejos de un amigo, que conoce algo de trabajos relacionados con el web crawling (sistemas automatizados para extraer información de la web mediante aplicaciones llamadas spiders), me recomendó la utilización de Scrapy, que es un framework diseñado para estas tareas.

Todavía estoy en la fase de lectura del manual, pero por le menos ya tengo claro que una de las primeras cosas será utilizar Xpath para reconocer las partidas, que están escritas en formato pgn. Esto añade una dificultad, ya que el formato pgn no utiliza etiquetas xhtml para describir la partida y Xpath se apoya en la etiquetas xhtml para detectar los items, que luego serán aprovechados por scrapy.

Por otra parte, Scrapy esta escrito en Python, un lenguaje con el que ya tuve alguna que otra experiencia (Zope/Plone). Python no entra dentro de mis lenguajes de programación favoritos, pero no es complejo y su notación es clara, así que mi adaptación al mismo esta siendo muy rápida.

No hay comentarios:

Publicar un comentario