Detalles clave
Acceso a múltiples fuentes de datos con data scraping.
-
DesafíoExtracción rápida y precisa de datos de múltiples fuentes
-
SoluciónPrácticas recomendadas para un raspado web robusto y resistente
-
Tecnologías y herramientasMicrosoft Azure Cloud Services para el alojamiento, ajuste y administración de la infraestructura. Lenguaje Python con las librerías y frameworks necesarios (Azure-sdk, Scrapy, Selenium, etc.) para el proceso de scraping y crawling de sitios web.
Cliente
El cliente es una organización no comercial que presta apoyo a pequeñas empresas y empresarios afroamericanos. Están orgullosos de prestar servicios que ayudan a los empresarios afroamericanos a conseguir subvenciones y alcanzar el éxito en los concursos.
Reto: obtención rápida y precisa de datos de múltiples fuentes
El cliente maneja regularmente enormes cantidades de datos procedentes de diversas fuentes. Así que la gestión de datos se ha convertido en una preocupación para ellos.
Querían recopilar ofertas de trabajo, tutoría y oportunidades de establecer redes para empresarios afroamericanos con talento de varios sitios web y publicarlas en su propia plataforma. Así, los empresarios pueden descubrir fácilmente empresas de afroamericanos e ir a apoyarlas o localizar la suya propia.
ESSID Solutions se enfrentó al reto de desarrollar una sólida solución de raspado de datos para el mercado del cliente.
Solución: mejores prácticas para un raspado web robusto y resistente
Nuestro equipo de ingenieros ha aplicado su experiencia en el raspado de datos para permitir la recopilación eficaz de datos de diversas fuentes.
El equipo de ESSID Solutions debía configurar la infraestructura y el flujo de código para el cliente:
-
Parte de Git y CI/CD
Para la gestión del código se utilizó el repositorio AzureDevOps con una configuración de canalización que permitió a nuestro equipo crear y enviar imágenes Docker al registro mediante un agente de trabajo paralelo.
-
Registro y aplicación lógica
A continuación, creamos Azure Docker Container Registry en Azure para almacenar nuestras imágenes Docker.
A continuación, necesitábamos crear instancias Docker a partir de imágenes utilizando Azure Logic App para ejecutar el código de scraper en paralelo y por separado.
-
Pieza rascadora
Durante esta etapa, el equipo de ESSID Solutions creó instancias de contenedor con aplicaciones Logic. A continuación, necesitábamos dar acceso a cada contenedor a los recursos de Azure y a los datos confidenciales, como contraseñas, cadenas de conexión, etc., que se almacenaban en Azure KeyVault.
Para almacenar los resultados de los raspadores, nuestro equipo decidió crear una cuenta de almacenamiento que sería como una carpeta en la nube para guardar los datos raspados. Después pudimos iniciar nuestros scrapers de forma manual, pero necesitábamos algo de orquestación, automatización y postprocesamiento.
-
Data Factory y parte de orquestación
Nuestros ingenieros ejecutaron todos nuestros scrapers con time-trigger y en una única ejecución de pipeline con Azure Data Factory.
La tubería principal se suponía que iniciar todos los contenedores con las solicitudes a través de azure API, a continuación, ejecute DataBricks Cuadernos para procesar los datos recogidos.
-
DataBricks
En esta fase, eliminamos todos los datos de los sitios web (ya que la carga incremental de datos de sitios web no es posible o difícil) y procesamos/guardamos todos los datos en la base de datos. Antes de cargar nuevos datos en la base de datos, borramos los existentes.
Como resultado, el cliente ha obtenido una solución de raspado de datos robusta que raspa datos de múltiples sitios y listados de negocios y recopila información sobre negocios fundados por afroamericanos que son útiles para los suscriptores de la plataforma del cliente.
Resultado: optimización de la extracción de datos para reducir el tiempo de procesamiento
Nuestro equipo de científicos e ingenieros de datos recurrió a múltiples fuentes para satisfacer las necesidades de raspado de datos del cliente.
Nuestra solución ha capacitado al cliente de las siguientes maneras:
- Extracción de datos a escala
- Entrega de datos estructurados
- Poco mantenimiento y rapidez
- Fácil de aplicar
- Automatización.