Architecture pour un système d'exploration Web évolutif sur AWS - AWS Directives prescriptives

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Architecture pour un système d'exploration Web évolutif sur AWS

Le schéma d'architecture suivant montre un système d'exploration Web conçu pour extraire de manière éthique les données environnementales, sociales et de gouvernance (ESG) des sites Web. Vous utilisez un Pythonun crawler basé sur un robot optimisé pour l' AWS infrastructure. Vous pouvez AWS Batch orchestrer les tâches d'exploration à grande échelle et utiliser Amazon Simple Storage Service (Amazon S3) pour le stockage. Les applications en aval peuvent ingérer et stocker les données du compartiment Amazon S3.

Utilisation d'un système d'exploration Web pour extraire les données ESG des sites Web.

Le schéma suivant illustre le flux de travail suivant :

  1. Amazon EventBridge Scheduler lance le processus d'analyse à un intervalle que vous planifiez.

  2. AWS Batch gère l'exécution des tâches du robot d'exploration Web. La file d'attente contient et orchestre les AWS Batch tâches d'exploration en attente.

  3. Les tâches d'exploration Web s'exécutent dans des conteneurs Amazon Elastic Container Service (Amazon ECS) sur. AWS Fargate Les tâches s'exécutent dans un sous-réseau public d'un cloud privé virtuel (VPC).

  4. Le robot d'exploration Web explore le site Web cible et récupère des données et des documents ESG, tels que des fichiers PDF, CSV ou d'autres documents.

  5. Le robot d'exploration Web stocke les données récupérées et les fichiers bruts dans un compartiment Amazon S3.

  6. D'autres systèmes ou applications ingèrent ou traitent les données et les fichiers stockés dans le compartiment Amazon S3.

Conception et exploitation d'un robot d'exploration Web

Certains sites Web sont spécifiquement conçus pour être exécutés sur des ordinateurs de bureau ou des appareils mobiles. Le robot d'exploration Web est conçu pour prendre en charge l'utilisation d'un agent utilisateur de bureau ou d'un agent utilisateur mobile. Ces agents vous aident à envoyer des demandes avec succès au site Web cible.

Une fois le robot d'exploration Web initialisé, il effectue les opérations suivantes :

  1. Le robot d'exploration Web appelle la setup() méthode. Cette méthode extrait et analyse le fichier robots.txt.

    Note

    Vous pouvez également configurer le robot d'exploration Web pour récupérer et analyser le plan du site.

  2. Le robot d'exploration Web traite le fichier robots.txt. Si un délai d'analyse est spécifié dans le fichier robots.txt, le robot d'exploration Web extrait le délai d'analyse pour l'agent utilisateur du bureau. Si aucun délai d'exploration n'est spécifié dans le fichier robots.txt, le robot d'exploration Web utilise un délai aléatoire.

  3. Le robot d'exploration Web appelle la crawl() méthode, qui lance le processus d'exploration. S'il n' URLs y en a pas dans la file d'attente, il ajoute l'URL de démarrage.

    Note

    Le robot d'exploration continue jusqu'à ce qu'il atteigne le nombre maximum de pages ou qu'il soit à court de pages URLs à explorer.

  4. Le crawler traite le. URLs Pour chaque URL de la file d'attente, le robot vérifie si l'URL a déjà été analysée.

  5. Si aucune URL n'a été analysée, le robot appelle la crawl_url() méthode comme suit :

    1. Le robot d'exploration vérifie le fichier robots.txt pour déterminer s'il peut utiliser l'agent utilisateur de bureau pour analyser l'URL.

    2. Si cela est autorisé, le robot d'exploration tente d'explorer l'URL à l'aide de l'agent utilisateur de bureau.

    3. Si ce n'est pas autorisé ou si l'agent utilisateur de bureau ne parvient pas à explorer, le robot d'exploration vérifie le fichier robots.txt pour déterminer s'il peut utiliser l'agent utilisateur mobile pour explorer l'URL.

    4. Si cela est autorisé, le robot d'exploration tente d'explorer l'URL à l'aide de l'agent utilisateur mobile.

  6. Le robot appelle la attempt_crawl() méthode, qui récupère et traite le contenu. Le robot envoie une requête GET à l'URL avec les en-têtes appropriés. Si la demande échoue, le robot utilise la logique des nouvelles tentatives.

  7. Si le fichier est au format HTML, le robot appelle la extract_esg_data() méthode. Il utilise Beautiful Souppour analyser le contenu HTML. Il extrait les données environnementales, sociales et de gouvernance (ESG) en utilisant la correspondance de mots clés.

    S'il s'agit d'un fichier PDF, le robot d'exploration appelle la save_pdf() méthode. Le robot télécharge et enregistre le fichier PDF dans le compartiment Amazon S3.

  8. Le robot appelle la extract_news_links() méthode. Cela permet de rechercher et de stocker des liens vers des articles de presse, des communiqués de presse et des articles de blog.

  9. Le robot appelle la extract_pdf_links() méthode. Cela permet d'identifier et de stocker les liens vers des documents PDF.

  10. Le robot appelle la is_relevant_to_sustainable_finance() méthode. Cela permet de vérifier si les actualités ou les articles sont liés à la finance durable en utilisant des mots clés prédéfinis.

  11. Après chaque tentative d'exploration, le robot implémente un délai en utilisant la delay() méthode. Si un délai a été spécifié dans le fichier robots.txt, il utilise cette valeur. Sinon, il utilise un délai aléatoire compris entre 1 et 3 secondes.

  12. Le robot appelle la save_esg_data() méthode pour enregistrer les données ESG dans un fichier CSV. Le fichier CSV est enregistré dans le compartiment Amazon S3.

  13. Le robot d'exploration appelle la save_news_links() méthode pour enregistrer les liens d'actualités dans un fichier CSV, y compris les informations de pertinence. Le fichier CSV est enregistré dans le compartiment Amazon S3.

  14. Le robot appelle la save_pdf_links() méthode pour enregistrer les liens PDF dans un fichier CSV. Le fichier CSV est enregistré dans le compartiment Amazon S3.

Traitement par lots et traitement des données

Le processus d'exploration est organisé et exécuté de manière structurée. AWS Batch assigne les tâches à chaque entreprise afin qu'elles soient exécutées en parallèle, par lots. Chaque lot se concentre sur le domaine et les sous-domaines d'une seule entreprise, tels que vous les avez identifiés dans votre ensemble de données. Cependant, les tâches d'un même lot s'exécutent de manière séquentielle afin de ne pas inonder le site Web d'un trop grand nombre de demandes. Cela permet à l'application de gérer plus efficacement la charge de travail d'exploration et de s'assurer que toutes les données pertinentes sont capturées pour chaque entreprise.

En organisant l'exploration Web en lots spécifiques à l'entreprise, cela permet de conteneuriser les données collectées. Cela permet d'éviter que les données d'une entreprise ne soient mélangées à celles d'autres entreprises.

Le traitement par lots permet à l'application de collecter efficacement des données sur le Web, tout en maintenant une structure claire et en séparant les informations en fonction des entreprises cibles et de leurs domaines Web respectifs. Cette approche permet de garantir l'intégrité et l'utilisabilité des données collectées, car elles sont soigneusement organisées et associées à l'entreprise et aux domaines appropriés.