Le data scraping change la donne pour tous ceux qui cherchent à extraire des informations significatives à partir de sites Web. Avec des outils tels que Chrome DevTools et les fichiers HAR, vous pouvez découvrir des API cachées et capturer des flux de données précieux sans effort. Dans cet article, je vais partager comment j'ai utilisé ces outils pour extraire les données produit de Blinkit, une plateforme de livraison d'épicerie, et vous montrer comment vous pouvez le faire également.
Pourquoi j'ai choisi le Data Scraping pour mon application d'épicerie
Lors de la création d'une application de livraison de courses, j'ai été confronté à un défi majeur : le manque de données réelles. Créer mon propre ensemble de données à partir de zéro aurait pris beaucoup de temps et n'aurait apporté aucun réel avantage au projet. J'avais besoin d'une solution plus rapide et plus pratique, ce qui m'a amené à l'idée de récupérer des données. En extrayant les détails du produit de Blinkit, j'ai pu obtenir des données précises et réelles pour tester et affiner mon application sans gaspiller de ressources.
Méthodes courantes pour récupérer des données sur le Web
-
Copier-Coller manuel
- Simple mais fastidieux. Convient pour extraire de petites quantités de données.
-
Outils de scraping Web
- Des outils comme Scrapy, BeautifulSoup ou Puppeteer automatisent le processus d'extraction de données à partir de sites Web.
- Idéal pour l'extraction de données structurées à plus grande échelle.
-
Intégration API
- Certains sites Web proposent des API publiques pour accéder à leurs données directement et légalement.
- Nécessite une connaissance des points de terminaison de l'API et des processus d'authentification.
-
Outils de développement du navigateur
- Inspectez les requêtes réseau, capturez des fichiers HAR ou analysez les éléments de la page directement dans le navigateur.
- Idéal pour identifier les API cachées ou les données JSON.
-
Navigateurs sans tête
- Utilisez des bibliothèques de navigateur sans tête comme Puppeteer ou Selenium pour automatiser la navigation et le scraping.
- Idéal pour les sites nécessitant un rendu ou une interaction JavaScript.
-
Analyse des fichiers HAR
- Les fichiers HAR capturent toute l'activité réseau d'une page Web. Ils peuvent être analysés pour extraire des API, des réponses JSON ou d'autres données.
- Utile pour les sites avec du contenu dynamique ou des données cachées.
-
Analyse HTML
- Extrayez des données en analysant le contenu HTML à l'aide de bibliothèques comme BeautifulSoup (Python) ou Cheerio (Node.js).
- Efficace pour les sites Web simples et statiques.
-
Extraction de données à partir de PDF ou d'images
- Des outils tels que PyPDF2, Tesseract (OCR) ou les API Adobe permettent d'extraire le texte des fichiers lorsque les données ne sont pas disponibles en ligne.
-
Scripts automatisés
- Scripts personnalisés écrits en Python, Node.js ou des langages similaires pour récupérer, analyser et stocker des données.
- Offre un contrôle complet sur le processus de grattage.
-
API tierces
- Utilisez des services tels que DataMiner, Octoparse ou Scrapy Cloud pour gérer les tâches de scraping à votre place.
- Gain de temps mais peut avoir des limites en fonction des plans de service.
J'ai choisi l'analyse de fichiers HAR
Qu'est-ce qu'un fichier HAR ?
Un fichier HAR (HTTP Archive) est un fichier d'archive au format JSON qui enregistre l'activité réseau d'une page Web. Il contient des informations détaillées sur chaque requête et réponse HTTP, notamment les en-têtes, les paramètres de requête, les charges utiles et les délais. Les fichiers HAR sont souvent utilisés pour le débogage, l'analyse des performances et, dans ce cas, le grattage de données.
Structure d'un fichier HAR
Un fichier HAR se compose de plusieurs sections, les principales étant :
-
Journal
- L'objet racine d'un fichier HAR, contenant des métadonnées sur la session enregistrée et les entrées capturées.
-
Entrées
- Un tableau d'objets où chaque entrée représente une requête HTTP individuelle et sa réponse correspondante.
Les propriétés clés incluent :
-
request : détails sur la requête, tels que l'URL, les en-têtes, la méthode et les paramètres de requête.
-
réponse : informations sur la réponse, y compris le code d'état, les en-têtes et le contenu.
-
timings : la répartition du temps passé pendant le cycle requête-réponse (par exemple, DNS, connexion, attente, réception).
-
Pages
- Contient des données sur les pages Web chargées pendant la session, telles que le titre de la page, l'heure de chargement et l'horodatage de l'ouverture de la page.
-
Créateur
- Métadonnées sur l'outil ou le navigateur utilisé pour générer le fichier HAR, y compris son nom et sa version.
Pourquoi j'ai choisi l'analyse de fichiers HAR
Les fichiers HAR fournissent un instantané complet de toutes les activités réseau sur une page Web. Cela les rend parfaits pour identifier les API cachées, capturer les charges utiles JSON et extraire les données exactes requises pour le scraping. Le format JSON structuré simplifie également le processus d'analyse à l'aide d'outils tels que les bibliothèques Python ou JavaScript.
Le plan : récupérer des données à l'aide de l'analyse de fichiers HAR
Pour extraire efficacement les données produit de Blinkit, j'ai suivi un plan structuré :
-
Parcourir et capturer l'activité du réseau
- J'ai ouvert le site de Blinkit et lancé Chrome DevTools.
- Parcouru diverses pages de produits pour capturer tous les appels API nécessaires dans l'onglet Réseau.
-
Exportation du fichier HAR
- Enregistré l'activité réseau enregistrée sous forme de fichier HAR pour une analyse hors ligne.
-
Analyse du fichier HAR
- Utilisation de Python pour analyser le fichier HAR et extraire les données pertinentes.
- Création de trois fonctions clés pour rationaliser le processus :
-
Fonction 1 : Filtrer les réponses pertinentes
- Extrait toutes les réponses correspondant au point de terminaison /listing?catId=* pour obtenir des données relatives au produit.
-
Fonction 2 : Nettoyer et extraire les données
- Traitement des réponses filtrées pour extraire les champs clés tels que l'identifiant, le nom, la catégorie, etc.
-
Fonction 3 : Enregistrer les images localement
- Identifié toutes les URL d'images de produits dans les données et téléchargées dans des fichiers locaux pour référence.
-
Exécution et résultats
- L'ensemble du processus, y compris quelques essais et erreurs, a pris environ 30 à 40 minutes.
- Récupération réussie des données d'environ 600 produits, y compris les noms, les catégories et les images.
Cette approche m'a permis de rassembler les données nécessaires à mon application de livraison d'épicerie rapidement et efficacement.
Conclusion
Le data scraping, lorsqu'il est effectué efficacement, peut vous faire gagner beaucoup de temps et d'efforts, en particulier lorsque vous avez besoin de données réelles pour tester ou créer une application. En tirant parti de Chrome DevTools et des fichiers HAR, j'ai pu extraire rapidement des données produit précieuses de Blinkit sans créer manuellement un ensemble de données. Le processus, bien que nécessitant quelques essais et erreurs, était simple et offrait une solution pratique à un problème courant rencontré par les développeurs. Avec cette méthode, j'ai pu rassembler 600 détails sur les produits en moins d'une heure, ce qui m'a aidé à avancer dans mon projet d'application de livraison de courses.
Le grattage de données, cependant, doit toujours être abordé de manière éthique et responsable. Assurez-vous toujours de respecter les conditions d’utilisation et les directives légales d’un site Web avant de le supprimer. S'il est bien fait, le scraping peut être un outil puissant pour collecter des données et améliorer vos projets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!