Actividad realizada durante la Semana de la Informática de la Facultad de Informática de la UCM.
Si los datos son el petróleo del siglo XXI el web scraping (data harvesting o cosechado de datos) es la perforadora que ayuda a extraer ese valioso producto de los sitios web.
En este taller introduciremos cómo realizar web scraping utilizando Python. Se pondrán en práctica dos técnicas de scraping diferentes y las ejemplificaremos usando las librerías Beautiful Soup y Selenium. El taller concluirá con una reflexión sobre los problemas éticos que conlleva el web scraping.
En este repositorio están los notebooks interactivos utilizados durante la sesión presencial. Para ejecutarlos es necesario tener instalado Jupyter Notebook (una forma sencilla es instalando la suite de Anaconda) y el driver de Selenium para Chrome o Firefox.
El repositorio está oganizado en torno a dos directorios:
notebooks
: Contiene dos Jupyter Notebooks sobre los que se desarrollará el taller, uno para la parte de Beautiful Soup y otro para la parte de Python.seleniumDrivers
: Este directorio está vacío pero en él habrá que descargar los drivers que utilicemos para Selenium.
Extraído del artículo Web Scraping: Best Practices to Follow de Prompt Cloud.
- Respeta los robots.txt: Aquí tienes algunos ejemplos:
- No hagas que tus robots accedan demasiado a menudo ni muchos en paralelo al sitio web para no ralentizarlo ni tirarlo abajo.
- Intenta que tus robots no accedan a los sitios en horas punta del uso humano.
- Hazlo con responsabilidad: no lo uses para republicar los datos extraídos (seguramente infringirás leyes de copyright) y revisa los Términos y Condiciones de Uso del sitio para saber si está permitido.
- Sé paciente: si vas a utilizarlo de manera continuada, seguramente tendrás que realizar un mantenimiento constante ante los cambios que sufra el sitio web que estás procesando.
- A Antonio Sánchez por sus incursiones con Selenium al Campus Virtual.
- A Sara Román por el material sobre data harvesting que me ha ayudado a dar una breves pinceladas sobre la ética detrás de estas técnicas.
- A Pedro Pablo Gómez por la revisión del material.
- A Yolanda García por introducirme en el mundo de los Jupyter Notebooks y el análisis de datos con Python.