La extracción de datos web es la extracción automatizada de datos de sitios web: un programa solicita páginas, analiza el HTML o JSON devuelto y guarda campos específicos, como precios o listados, en un formato estructurado. Se diferencia de la exploración web, que sigue enlaces para descubrir e indexar páginas; la extracción saca datos específicos de las páginas obtenidas.
Un extractor básico envía una solicitud HTTP a una URL objetivo, recibe el HTML en bruto (o JSON, para sitios basados en API) y extrae los puntos de datos específicos necesarios: precios de productos, clasificaciones de búsqueda, información de contacto y similares. A gran escala, la extracción se enfrenta a límites de tasa, que limitan cuántas solicitudes puede hacer una sola dirección IP en un período de tiempo determinado.
Tipos de Herramientas de Extracción de Datos Web
- Bibliotecas de código: Scripts que envían solicitudes HTTP y analizan el HTML, por ejemplo, Python con un analizador HTML.
- Automatización del navegador: Herramientas como Selenium o Playwright cargan la página completa, incluido el contenido generado por JavaScript, y luego extraen datos del DOM renderizado.
- APIs oficiales: Donde un sitio ofrece una, devuelve datos estructurados directamente, sin necesidad de análisis de HTML.
Medidas Comunes Anti-Extracción
Además de los límites de tasa, los sitios utilizan otras formas de detectar y ralentizar a los extractores:
- CAPTCHAs que piden al visitante que demuestre que es humano.
- Archivos robots.txt que indican qué rutas pueden acceder los rastreadores automatizados.
- Honeypots: Enlaces ocultos que los visitantes humanos nunca ven ni hacen clic, utilizados para identificar y huellas dactilares de bots.
- Huella digital del dispositivo, que puede reidentificar un navegador o dispositivo a partir de sus características, incluso después de que se borran las cookies o cuando se utiliza una VPN.