Un scraper web: cómo extraer datos de internet

Copiar a mano los precios de la web de un proveedor a una hoja de cálculo funciona con veinte productos. Con dos mil, se come una semana y aun así quedan errores. Un scraper web (también llamado parser) es un pequeño programa que abre las páginas por usted, toma los mismos datos de cada una y los guarda en una tabla. Esto es lo que puede hacer, qué preparar y qué normas seguir.

Para qué sirve un scraper
Un scraper es útil siempre que el mismo tipo de información esté en muchas páginas parecidas:
- Precios y existencias. Siga cómo cambian los precios de un proveedor o qué artículos están agotados.
- El catálogo de un proveedor. Pase nombres, descripciones, imágenes y precios a su propia tienda.
- Anuncios. Reúna en una tabla anuncios de inmuebles, coches o empleo de un tablón público.
- Eventos y artículos. Recopile fechas, títulos y enlaces de un calendario o una página de noticias públicos.
Recopile solo lo que tiene permitido recopilar
Antes que nada, compruebe que es legítimo tomar esos datos:
- Solo páginas públicas. Si necesita iniciar sesión para ver los datos, un scraper no es la herramienta adecuada.
- Lea las condiciones del sitio. Muchos sitios indican qué se puede recopilar y qué no. Las grandes plataformas, los buscadores y las redes sociales suelen prohibirlo; use en su lugar su exportación oficial o su API.
- Respete los límites de frecuencia. Una pausa de unos segundos entre páginas mantiene baja la carga del sitio. Nunca intente saltarse captchas ni bloqueos.
- Cumpla las leyes de privacidad. Los nombres, correos electrónicos y teléfonos de personas son datos personales, y muchos países limitan estrictamente su recopilación. Déjelos fuera.
Al final, la decisión de si puede recopilar y usar los datos de un sitio es suya, así que compruébelo antes de empezar.
Describa las páginas
Un scraper se escribe para la estructura real de las páginas, así que sea preciso:
- Un enlace a una página de listado y un enlace a la página de un artículo.
- Cuántas páginas hay, aproximadamente, por ejemplo “unas 40 páginas de listado con 24 productos cada una”.
- Una o dos páginas guardadas desde su navegador (Archivo > Guardar página como) o capturas de pantalla de ellas.
Enumere los campos como columnas de una tabla
Imagine el resultado como una hoja de cálculo y nombre sus columnas en orden, con un ejemplo de cada una:
- Nombre: “Tabla de cortar de roble, grande”
- Precio: “34.90”
- Precio anterior: “39.90”, si el artículo está en oferta
- En existencias: “sí”
- Enlace a la página del artículo y enlace a la imagen
Diez campos claros son mejores que treinta vagos. Añada cualquier regla que necesite, como “solo artículos en existencias”.
Elija el formato y dónde se ejecuta
- CSV se abre en cualquier hoja de cálculo y se importa en la mayoría de sistemas de tienda.
- Excel es más cómodo si va a filtrar y ordenar a mano.
- JSON le conviene a un desarrollador que vaya a cargar los datos en otro sitio.
El scraper se ejecuta en su propio ordenador con Python, así que los datos le llegan directamente a usted, y puede volver a ejecutarlo siempre que necesite cifras actualizadas.
Cuando el sitio cambia
Un scraper sigue las páginas tal como son hoy. Si el sitio estrena diseño, el scraper puede dejar de encontrar los campos y necesitará una actualización. Un sitio también puede limitar las visitas incluso a un ritmo prudente. Téngalo en cuenta si depende de esos datos cada semana.
En resumen
Decida qué páginas públicas y qué campos necesita, revise las condiciones del sitio, mantenga un ritmo prudente y deje fuera los datos personales. Si prefiere no escribir el código usted mismo, encargue un scraper web: envía el sitio, los campos y una o dos páginas guardadas, y recibe el código Python, un archivo de configuración y una guía paso a paso para ejecutarlo y obtener CSV, Excel o JSON. El pago se libera solo después de que usted acepte el trabajo.