Scraping efficace de données de sites web pour une meilleure gestion des données

Scraping efficace de données de sites web pour une meilleure gestion des données

Détails clés

Accéder à plusieurs sources de données avec le scraping de données.

  • Défi
    Récupération rapide et précise de données provenant de sources multiples
  • Solution
    Meilleures pratiques pour un scraping web robuste et résilient
  • Technologies et outils
    Microsoft Azure Cloud Services pour l'hébergement, le réglage et l'administration de l'infrastructure. Langage Python avec les bibliothèques et les cadres nécessaires (Azure-sdk, Scrapy, Selenium, etc.) pour le processus de scraping et de crawling des sites web.

Client

Le client est une organisation non commerciale qui soutient les petites entreprises et les entrepreneurs afro-américains. Elle est fière de fournir des services qui aident les hommes d'affaires afro-américains à obtenir des subventions et à réussir dans les concours.

Défi : extraction rapide et précise de données à partir de sources multiples

Le client traite régulièrement d'énormes quantités de données provenant de diverses sources. La gestion des données est donc devenue une préoccupation pour lui.

Ils souhaitaient recueillir des offres d'emploi, des opportunités de mentorat et de réseau pour les entrepreneurs afro-américains talentueux sur différents sites web et les publier sur leur propre plateforme. Ainsi, les entrepreneurs peuvent facilement découvrir des entreprises détenues par des Afro-Américains et aller les soutenir ou créer leur propre entreprise.

ESSID Solutions a été mis au défi de développer une solution de scraping de données solide pour le marché du client.

Solution : meilleures pratiques pour un web scraping robuste et résilient

Notre équipe d'ingénieurs a mis à profit son expertise en matière de grattage de données pour permettre une collecte efficace de données à partir de diverses sources.

Schéma d'une solution de récupération de données sur les sites web

L'équipe d'ESSID Solutions devait mettre en place l'infrastructure et le flux de code pour le client :

  1. Partie Git et CI/CD

    Pour la gestion du code, nous avons utilisé le référentiel AzureDevOps avec une configuration de pipeline qui a permis à notre équipe de construire et de pousser des images Docker vers le registre en utilisant un agent de travail parallèle.

  2. Registre et logique App part

    Ensuite, nous avons créé Azure Docker Container Registry sur L'azur pour stocker nos images docker.

    Ensuite, nous avons dû créer des instances docker à partir d'images en utilisant Azure Logic app pour exécuter le code scraper en parallèle et séparément.

  3. Pièce de raclage

    Au cours de cette étape, l'équipe d'ESSID Solutions a créé des instances de conteneurs avec des applications Logic. Ensuite, nous avons dû donner à chaque conteneur l'accès aux ressources Azure et aux données sensibles telles que les mots de passe, les chaînes de connexion, etc. qui étaient stockées dans Azure KeyVault.

    projet de pièce de grattoir

    Pour stocker les résultats des scrapeurs, notre équipe a décidé de créer un compte de stockage qui serait comme un dossier dans le nuage pour enregistrer les données scrappées. Après cela, nous avons pu démarrer nos scrapeurs manuellement, mais nous avions besoin d'une certaine orchestration, d'une automatisation et d'un post-traitement.

  4. Data Factory et orchestration

    Nos ingénieurs ont exécuté tous nos scraps avec des déclencheurs temporels et dans un seul pipeline avec Azure Data Factory.

    Le pipeline principal était censé démarrer tous les conteneurs avec des requêtes via l'API azur, puis exécuter DataBricks Des carnets de notes pour traiter les données collectées.

    orchestration partie projet

  5. DataBricks

    À ce stade, nous avons supprimé toutes les données des sites web (car le chargement incrémentiel de données à partir de sites web n'est pas possible ou difficile) et nous avons procédé au traitement et à l'enregistrement de toutes les données dans la base de données. Avant de charger de nouvelles données dans la base de données, nous avons supprimé les données existantes.

    En conséquence, le client dispose d'une solution de scraping de données robuste qui récupère les données de plusieurs sites et listes d'entreprises et rassemble des informations sur les entreprises fondées par des Afro-Américains qui sont utiles pour les abonnés de la plateforme du client.

Résultat : optimisation du scraping de données pour réduire le temps de traitement

Notre équipe de data scientists et d'ingénieurs a puisé dans de multiples sources pour répondre aux besoins du client en matière de scraping de données.

Notre solution a donné au client les moyens d'agir de la manière suivante :