Web scraping con Python y Raspberry Pi

¿Qué es el web scraping?

El web scraping es, básicamente, un conjunto de técnicas cuyo fin es obtener de manera más o menos automática datos de las páginas web. Por ejemplo, sería web scraping recopilar los horarios de salida de los trenes de una página de una compañía de ferrocarril.

Hace unas días me tuve que enfrentar en mi trabajo (del que prefiero no dar detalles exactos)  a una tarea un poco tediosa. Se trataba de contrastar una serie de datos de los que yo disponía contra una base de datos a la cual se pueden efectuar consultas individuales a través de internet. Fue un fastidio, porque si hubiera dispuesto del conjunto de datos a contrastar, hubiera tenido el resultado final en lo que se tarda en crear y ejecutar la consulta SQL, es decir, algunos segundos. Como tuve que hacer cerca de 300 consultas a la web (encima, en un día que no andaba muy fino el servidor) y contrastarlas a mano… me llevó casi seis horas. El web scraping parecía una solución.

De manera que me dije que con toda probabilidad sería posible automatizarlo con un script Python, o al menos, automatizar la recopilación de datos con el script, lo que como ventaja adicional resulta en tener los datos y apara siempre en mi poder. Es decir, hacer un poquito de web scraping.

El script de Python

El script es bastante sencillo, y el código que os pongo está bastante bien comentado, de manera que no creo que sea necesario daros más explicaciones. Ahora bien, el uso de urllib2 se puede complicar bastante, el uso que yo le doy es simple. Quizá lo único que tenéis que tener en cuenta es que es preciso, según el caso, proporcionarle un user-agent adecuado, pues hay muchos servidores que rechazan ciertos tipos de user-agent, precisamente para evitar el web scraping.

Ahora sólo queda correr el script y esperar.

¿Y la Raspberry Pi, para qué?

Bueno, llevo muchos días pensando qué utilidades darle a mi Raspberry Pi, y esta me parece una muy interesante, pues una de las grandes virtudes de la Raspberry es su reducidísimo consumo. No es lo mismo hacer web scraping con un ordenador portátil o uno de sobremesa, consumiendo entre 100 y 300 W, que con un cacharrito silencioso que consume  apenas 3 watios y medio, ¿no? podríamos llamarlo web scraping de baja huella de carbono, ecológico, o algo así.

Lo único que hacer es copiar nuestro script en la Raspberry Pi, por ejemplo con scp tal y como os comentaba en otro artículo y ejecutarlo y dejarlo tranquilito haciendo el web scraping por nosotros

Bueno, espero que os haya gustado. ¡¡Espero vuestros comentarios!!