Enunciado y solución de ejercicios resueltos en Python: web scraping. Se incluye la descarga del código fuente completo de los ejercicios en Python. Se pedirá que se desarrolle un programa Python que acceda a una determinada web, obtenga unos datos concretos y muestre un sesgo de estos datos con un formato determinado. En el ejercicio se pide al usuario que capture todos los posibles errores que se puedan producir, por lo que también es un ejemplo de captura de errores.

Ejercicio resuelto Python: web scraping

Enunciado del ejercicio Python

Realizar un script Python que obtenga la información del sitio web: https://www.ign.es/web/ign/portal/ultimos-terremotos/-/ultimos-terremotos/get30dias y que realice las siguientes funciones:

  1. Que obtenga y almacene en una variable el nombre de los terremotos sentidos de los últimos 30 días (columna “Evento” de la tabla Terremotos sentidos de los últimos 30 días en el área de la Península Ibérica e Islas Canarias).
  2. Que almacene el valor de la magnitud de cada evento sísmico (columna “Magnitud”).
  3. Que imprima por pantalla los datos de manera que el formato sea similar al siguiente:

Para la conexión con el servidor web indicado se se recomienda el uso del paquete request y para la obtención y el tratamiento de la información se recomienda el uso del paquete bs4 y BeautifulSoup.

Intentar realizar todos las capturas de errores posibles, al menos en los casos en los que:

  • Se produce un error al conectar al servidor.
  • No se ha obtenido contenido HTML.
  • No se ha obtenido la tabla.
  • No se han obtenido las columnas de la tabla.

Solución del ejercicio en Python

La solución propuesta al ejercicio 1, como ejemplo de uso de web scraping en Python, podría ser:

Ejemplo de ejecución del ejercicio en Python

La compilación del ejercicio 1, dará como resultado:

En el caso de que no haya conexión con el servidor web, capturará el error y lo mostrará de forma controlada:

Descarga del fichero Python con el ejercicio resuelto

En el siguiente enlace os proporcionamos la descarga del código fuente completo en Python con la solución del ejercicio propuesto: