Stage 2ème année : Idia-Tech

Contexte

Présentation de l’Entreprise

IDIA TECH est une entreprise créée en 2020 par Monsieur Xavier BOUR, directeur de l’entreprise. Sa particularité est qu’elle fonctionne entièrement en mode distanciel, avec des réunions régulières sur Signal (chat et visioconférences) pour assurer un suivi et des échanges, ainsi que l’utilisation d’Anydesk pour faciliter les démonstrations à distance.

Spécialisée dans le web-mining, IDIA TECH se distingue par sa capacité à parcourir les pages web des sites fournisseurs pour collecter automatiquement le contenu de chaque page, puis le traiter, le classer et en extraire des informations stratégiques. Fidèle à l’esprit du logiciel libre, l’entreprise vend à ses clients des produits sans abonnements, leur offrant ainsi une maîtrise totale de leurs outils.


Missions

Face à la production massive de données et l’essor du Big Data, IDIA TECH s’est concentrée sur le développement d’outils de collecte automatisée via des techniques de crawling. L’entreprise a ainsi créé Grimport Crawler, un outil permettant de parcourir automatiquement les pages web des sites fournisseurs et d’en extraire des données stratégiques. Dans ce cadre, l’entreprise a également conçu Grimport, un langage de programmation simple et puissant permettant aux e-commerçants de gérer efficacement les catalogues produits et d’automatiser des tâches complexes, tout en respectant les limitations légales sur les données protégées.

Objectif & Fonctionnalités

Objectifs et Fonctionnalités

Le projet de stage avait pour objectif de travailler sur plusieurs projets au sein d’IDIA TECH, principalement axés sur l’extraction de données à travers le crawling des sites web de différents clients. Ces projets avaient pour but de développer et optimiser des scripts d’extraction automatisée de données, contribuant ainsi à l’amélioration des processus internes de l’entreprise.

Missions et Actions principales :

  • Extraction de données (Crawling) : J’ai travaillé sur quatre projets distincts d’extraction de données pour plusieurs clients, en utilisant des techniques de web scraping pour collecter des informations précieuses à partir de sites fournisseurs.

  • Amélioration du chatbot GrimportGPT : J’ai également été impliqué dans un projet distinct portant sur l’optimisation de GrimportGPT, le chatbot de l’entreprise. Ce projet consistait à corriger et améliorer les fonctionnalités existantes du chatbot en travaillant sur son installation, l’ajout de nouvelles données, et la gestion de son environnement local à travers Python et Streamlit.

  • Mise à jour des données et tests : J’ai pris en charge l’ajout de nouvelles données au chatbot en utilisant des scripts d’initialisation et en mettant à jour le projet via des outils comme Docker et GitHub, tout en garantissant le bon fonctionnement des mises à jour et des imports de données.

Démarche et planification

Mon stage chez IDIA-Tech a débuté par une formation d’une semaine, composée de documents et de vidéos enregistrées par Monsieur Xavier BOUR. Cette formation m’a permis de me familiariser avec les outils utilisés par l’entreprise, notamment Fiddler pour le débogage réseau, Notepad++ pour l’édition de texte, et surtout le langage Grimport ainsi que l’outil associé Grimport Crawler. En plus de l’aspect technique, des conseils sur le télétravail et les bonnes pratiques à adopter dans ce mode de travail ont également été abordés.

Dès la fin de cette formation, j’ai été encadré par Xavier BOUR sur plusieurs projets de web-mining pour des clients. Ces projets suivaient une démarche bien définie :

  1. Définition des besoins du client : Le client spécifie un site fournisseur et détaille les informations qu’il souhaite extraire dans un cahier des charges.

  2. Configuration et tests : Le Grimport Crawler est paramétré pour parcourir toutes les pages du site et appliquer des scripts d’extraction adaptés aux différentes structures de pages.

  3. Traitement et livraison des données : Une fois le programme fonctionnel, il est utilisé pour extraire et actualiser les données selon le format demandé par le client.

Le suivi des projets se faisait via StoreInterfacer, une plateforme développée par l’entreprise. Ce site regroupe plusieurs modules open source utiles au développement des projets de web-mining et comprend un espace de gestion des projets en cours, accessible uniquement aux employés et stagiaires concernés.

Projets réalisés

Au cours de mon stage, j’ai travaillé sur cinq projets, répartis en deux catégories principales :

1. Extraction de données (Crawling) pour des clients

  • Importation de produits depuis pbs.com (site de vente de drones) : Développement d’un script pour extraire et intégrer automatiquement les catalogues de produits, avec une optimisation de la gestion du stock et des marques après validation client.

  • Scraping des publicités Google Ads : Extraction et analyse des campagnes publicitaires depuis la Google Ad Library, avec une segmentation des données pour faciliter leur traitement.

  • Amélioration d’un projet existant : Optimisation et stabilisation d’un script de scraping déjà en place afin d’assurer une meilleure maintenabilité.

  • Importation de produits depuis un site de vente de vêtements : Développement initial du projet avant transfert à un collaborateur pour finalisation.

2. Amélioration du chatbot GrimportGPT

  • Optimisation et maintenance du chatbot GrimportGPT : Travail sur l’installation en local, l’ajout de nouvelles données et l’amélioration des fonctionnalités via Python et Streamlit.

  • Gestion des mises à jour et versioning : Utilisation de Docker et GitHub pour assurer la mise à jour et le bon fonctionnement du chatbot en environnement de production.

Ce stage m’a permis d’acquérir une expertise en crawling, extraction et traitement des données, ainsi qu’en gestion et maintenance d’outils d’intelligence artificielle.

les outils et technologies

Durant mon stage, j’ai utilisé différents outils et technologies adaptés aux besoins spécifiques de l’entreprise, notamment pour le web scraping, l’automatisation des données et le développement du chatbot.

Langages et logiciels principaux

  • Grimport (Langage interne) : Utilisé pour développer et exécuter des scripts d’extraction de données via le Grimport Crawler.

  • Grimport Crawler Editor : Interface permettant d’éditer et d’optimiser les scripts d’extraction pour collecter les données demandées par les clients.

  • Python : Principalement utilisé pour l’amélioration et la mise à jour du chatbot GrimportGPT.

  • APIs OpenAI : Intégrées pour permettre au chatbot d’interagir intelligemment avec les données spécifiques de l’entreprise.

  • Git/GitHub : Utilisés pour la gestion des versions et la collaboration sur les différents projets.

Outils et logiciels utilisés

  • Fiddler Classic : Analyse et débogage des requêtes réseau.

  • Visual Studio Code / Notepad++ : Édition et modification de scripts.

  • Edit Script with Grimport : Outil spécifique pour modifier les scripts du Grimport Crawler.

  • Launch a Grimport script / Update Grimport Crawler : Actions pour exécuter et mettre à jour les scripts d’extraction.

  • AnyDesk : Prise de contrôle à distance pour faciliter les démonstrations et les corrections.

  • Signal : Outil de communication pour les réunions en chat et visioconférence.

  • NordVPN : Sécurisation des connexions à distance.

Extensions utilisées

  • Cookie Quick Manager : Gestion des cookies pour faciliter l’accès aux sites lors du scraping.

  • FoxyProxy Standard : Configuration et gestion des proxys pour contourner certaines restrictions d’accès

Aperçus

Compétences validées

Durant ce stage, j’ai pu développer et valider plusieurs compétences clés dans le domaine du web scraping, du traitement des données et du développement d’outils d’automatisation.

  • Extraction et automatisation des données : J’ai acquis une expertise en écriture de scripts Grimport pour le crawling et l’extraction automatisée d’informations sur divers sites web en fonction des besoins des clients.

  • Analyse et adaptation des scripts d’extraction : J’ai appris à analyser la structure des sites, à identifier les éléments pertinents à extraire et à adapter les scripts pour optimiser leur efficacité.

  • Développement et maintenance d’un chatbot : Participation à l’amélioration de GrimportGPT, impliquant l’utilisation de Python et des APIs OpenAI.

  • Utilisation d’outils techniques : Maîtrise de divers outils comme Fiddler pour le débogage réseau, AnyDesk pour la collaboration à distance, et Git/GitHub pour la gestion de versions des projets.

  • Gestion de projets techniques : Travail sur plusieurs projets en parallèle, nécessitant une bonne organisation, le respect des délais et une adaptation aux retours des clients.

  • Autonomie et résolution de problèmes : Évolution dans un environnement 100% distanciel, nécessitant une forte autonomie pour comprendre les problématiques, résoudre des bugs et proposer des améliorations.

Documents techniques

  • Documents techniques
    Voici les documents techniques associés à mon travail pendant le stage :

    • Cahiers des charges : Pour chaque projet, j’ai eu accès à un cahier des charges détaillant les besoins et exigences spécifiques des clients. Ces documents ont été cruciaux pour orienter le développement des solutions, particulièrement pour l’importation des catalogues et le scraping des données.
    • Interface collaborative (StroreInterfacer) : Une plateforme interne accessible aux collaborateurs de l’entreprise, permettant de consulter les projets assignés, d’accéder aux informations sur le client, et de suivre l’évolution des missions. Cette interface a également permis d’avoir un accès direct aux back-offices des clients pour mieux comprendre leurs systèmes et faciliter l’intégration des données.
    • Documentation technique des outils : Des documents techniques ont été fournis pour décrire les outils internes utilisés, comme le Grimport Crawler et les scripts d’importation. Ces documents détaillent les processus et les méthodes utilisées pour chaque projet, permettant une meilleure compréhension du travail réalisé et facilitant la maintenance et les améliorations futures.

Synthèse personnelle

Ce stage chez IDIA TECH GRIMPORT DÉVELOPPEMENT a été une expérience enrichissante, tant sur le plan professionnel que personnel. Travailler sur des projets variés, allant du développement de scripts d’importation à l’analyse de données en utilisant des outils de web scraping, m’a permis de renforcer mes compétences techniques et d’apprendre de nouvelles méthodes dans un environnement dynamique.

L’un des aspects les plus enrichissants de ce stage a été de participer à plusieurs projets en parallèle, chacun ayant ses propres défis techniques et ses objectifs. Le travail sur les projets de crawler a renforcé ma compréhension des processus d’extraction de données et d’intégration, en particulier pour automatiser l’importation de catalogues et d’informations provenant de différents sites. Ces projets m’ont permis de développer des compétences en analyse de données massives. J’ai également eu l’opportunité de travailler avec des outils spécifiques à l’entreprise, comme Grimport, ce qui m’a permis de me familiariser avec des langages et des outils internes utilisés pour le scraping et l’intégration de données.

Enfin, cette expérience m’a permis d’évoluer en tant que professionnel. J’ai acquis une meilleure compréhension des besoins clients et des processus d’intégration de données, tout en apprenant à utiliser des technologies spécifiques au domaine du web mining et du web scraping. Cette immersion dans un environnement de développement dynamique et innovant a confirmé mon intérêt pour ce domaine et m’a donné des bases solides pour ma future carrière.