estela, un clúster elástico para web scraping
By Breno Colom
5 min read | June 24, 2022
estela es un clúster elástico para web scraping que corre en Kubernetes. Proporciona mecanismos para implementar, correr y escalar arañas web scraping a través de una API REST y una interfaz web.
El diseño de estela se basa en años de experiencia en las trincheras de proyectos de web scraping de diversa complejidad y escala. El equipo detrás del diseño y desarrollo inicial de estela incluye a veteranos del web scraping que han estado involucrados en la industria desde el principio.
Entre otras cosas, hemos visto cambios importantes en la industria:
-
El rápido crecimiento de la industria del web scraping en los últimos diez años. El año pasado, The Economist incluyó el web scraping como la primera entre las nuevas fuentes de datos que impulsan los cambios tecnológicos en las finanzas y los pronósticos recientes indican que el mercado global de datos alternativos espera alcanzar un valor de USD $ 143 mil millones para 2030.
-
Hemos pasado de los primeros años en los que la legalidad del web scraping era un tema de controversia a empresas de la lista Fortune 100, organizaciones gubernamentales e incluso bancos tradicionales que se dedican a la extracción de datos web. Hace unos meses, un tribunal de apelaciones de EE. UU. reafirmó que el web scraping de sitios web públicos es legal. Este fallo debería ser ratificado por la Corte Suprema de los EE. UU. pronto, sentando un precedente importante y poniendo fin a una discusión de larga data.
Aun así, estas buenas noticias no implican que el web scraping se haya vuelto más fácil, al contrario:
-
Hoy en día, los equipos de web scraping y los desarrolladores de protección de contenido participan en una carrera armamentista en curso. Hay más en juego que nunca, por ejemplo, el año pasado, una implementación coordinada de sitios web actualizados y contramedidas antibot por parte de muchos minoristas al comienzo del Black Friday provocó importantes interrupciones de datos para la mayoría de las organizaciones durante el momento más crítico del año para raspar en el comercio electrónico. vertical.
-
El auge tecnológico relacionado con la pandemia (junto con las tendencias asociadas, como la aceptación del comercio electrónico en regiones emergentes como América Latina) aceleró la necesidad de conocimientos de datos web, lo que significó dar la bienvenida a muchos recién llegados a la industria, desde consumidores hasta proveedores. Y, sin embargo, la recesión tecnológica posterior al auge está obligando a las organizaciones a evaluar su estrategia alternativa de adquisición de datos, con un enfoque renovado en el ahorro de costos, la reducción de la redundancia y la simplificación de la gestión.
Ya sea que haya subcontratado la extracción de datos web o la haya administrado internamente, los desafíos tecnológicos y contextuales de este momento garantizan una mejor manera de avanzar que no requiere reinventar constantemente la rueda o depender de nubes de terceros patentadas.
Hasta ahora no ha habido una solución integral de orquestación de web scraping construida sobre una pila moderna basada en contenedores. Hoy estamos orgullosos de anunciar el lanzamiento de estela como software de código abierto bajo la licencia MIT:
https://github.com/bitmakerla/estela
estela proporciona las siguientes ventajas frente a las alternativas existentes:
-
Fácil gestión de las cargas de trabajo de scraping. estela actualmente admite arañas escritas con Scrapy.
-
Escalabilidad y elasticidad integradas. estela se basa en Kubernetes para proporcionar administración de aplicaciones en contenedores. Esto permite que su clúster de scraping se adapte tanto al crecimiento lineal de su infraestructura de scraping como a los picos inesperados.
-
Diseño asíncrono tolerante a fallas. Ya sea un puñado de miles de trabajos de raspado paralelos, estela se asegurará de que no se pierdan datos.
-
Seguridad y privacidad. Si bien existen plataformas propietarias más maduras, no esperamos que se publiquen como código abierto en el corto plazo, si es que lo hacen. estela, por otro lado, como un proyecto de código abierto, puede implementarse dentro de su propia nube o centro de datos ahora para comenzar a impulsar su plataforma de extracción y escalar automáticamente según sea necesario.
estela consta de tres módulos:
-
API REST: construido con el kit de herramientas del marco Django REST, exponiendo varios puntos finales para administrar proyectos, arañas y trabajos. Utiliza Celery para el procesamiento de tareas y se encarga de implementar sus proyectos Scrapy, entre otras cosas.
-
Cola: estela necesita una plataforma de baja latencia y alto rendimiento que controle las fuentes de datos en tiempo real en una arquitectura de productor-consumidor. En este módulo, encontrará un consumidor de Kafka utilizado para recopilar y transportar la información de los trabajos de araña a una base de datos.
-
Web: una interfaz web implementada con React y Typescript que le permite administrar proyectos y arañas.
Algunas de las próximas características planeadas para su lanzamiento incluyen:
- Contabilidad (por trabajo, proyecto y organización)
- Configuración de retención de datos
- Compatibilidad con colecciones (almacén de clave / valor en el que pueden escribir varios trabajos)
- Informes y alertas
- Mejoras en la interfaz web
- Soporte para formatos de almacenamiento en columnas (Apache Arrow / Parquet)
- Compatibilidad con marcos e idiomas de scraping adicionales
Hemos puesto mucho esfuerzo y experiencia en este primer lanzamiento público y tenemos grandes esperanzas puestas en el proyecto. Esperamos que el resto de la comunidad de web scraping encuentre estela tan útil como ha demostrado ser para nosotros.
Finalmente, nos gustaría agradecer cualquier comentario y contribución al proyecto, así que anda a nuestro repo y empieza a probarlo. Happy scraping!