Le scraping Web est devenu un outil indispensable pour les particuliers comme pour les entreprises dans le monde actuel axé sur les données. Il nous permet d'extraire des informations précieuses des sites Web, transformant des données non structurées en informations exploitables. Parmi la myriade de sites Web disponibles pour le scraping, Walmart, l'un des plus grands détaillants au monde, se distingue comme une source précieuse de données sur les produits. Que vous soyez un entrepreneur en commerce électronique cherchant à surveiller les prix des concurrents ou un passionné de données intéressé par l'analyse des tendances du marché, le scraping des pages de produits Walmart peut vous fournir une multitude de données avec lesquelles travailler.

Dans ce guide étape par étape, nous explorerons l'art et la science du scraping Web, en nous concentrant spécifiquement sur le scraping efficace des pages de produits Walmart. Nous utiliserons le Python langage de programmation, un outil polyvalent et largement utilisé dans le monde du scraping Web, avec le Base d'exploration Crawling API pour simplifier le processus. À la fin de ce guide, vous disposerez des connaissances et des outils nécessaires pour collecter les titres, les prix, les notes et d'autres données précieuses des produits à partir du vaste catalogue en ligne de Walmart.

Avant d'explorer les aspects techniques, prenons un moment pour comprendre pourquoi le scraping Web est essentiel et pourquoi le scraping des pages de produits Walmart, principalement, peut changer la donne à diverses fins.

Table des matières

  1. Pour commencer
  • L'importance du scraping Web
  • Pourquoi abandonner Walmart ?
  • Outils et technologies utilisés
  1. Configuration
  • Installation de Python et des bibliothèques essentielles
  • Créer un environnement virtuel
  • Obtention d'une clé API Crawlbase
  1. Comprendre la structure de la page de recherche de Walmart
  • Présentation de la page de recherche de Walmart
  • Inspection du code HTML pour obtenir des sélecteurs CSS
  1. Construire votre grattoir Walmart
  • Utilisation de la bibliothèque Python Crawlbase
  • Gestion des paramètres et personnalisation des réponses
  • Récupération de la page de recherche de Walmart
  • Gestion de la pagination sur la page de recherche
  1. Stockage de données
  • Stockage des données récupérées dans un fichier CSV
  • Stockage des données récupérées dans une base de données SQLite
  1. Conclusion
  2. FAQ - Foire Aux Questions

1. Commencer

Dans ce monde axé sur les données, la capacité à collecter et à analyser des informations sur le Web est devenue un atout puissant. C'est là qu'entre en jeu le Web scraping, le processus d'extraction de données à partir de sites Web. Il sert de pont entre le vaste océan d'informations en ligne et vos besoins spécifiques en matière de données. Que ce soit dans le domaine des affaires, de la recherche ou simplement par curiosité, le Web scraping vous permet d'accéder, d'analyser et d'utiliser des données qui étaient autrefois enfermées dans les profondeurs d'Internet.

L'importance du scraping Web

Le Web scraping est une technique transformatrice qui joue un rôle essentiel à l'ère de la prise de décision basée sur les données. Il consiste à extraire des données de sites Web, qui peuvent ensuite être exploitées à diverses fins dans divers domaines. Que vous soyez un professionnel, un analyste de données, un chercheur ou simplement un passionné d'informations, le Web scraping peut changer la donne dans votre quête de données.

L'importance du scraping Web réside dans sa capacité à convertir des données Web non structurées en ensembles de données structurés pouvant être analysés, visualisés et intégrés dans des applications. Il vous permet de rester informé, de prendre des décisions fondées sur des données et d'acquérir un avantage concurrentiel dans un monde de plus en plus numérique. En automatisant le processus de collecte de données, le scraping Web permet d'économiser du temps et des ressources qui seraient autrement consacrés à la saisie et au suivi manuels des données. Il ouvre de nouvelles opportunités pour la recherche, l'analyse de marché, la veille concurrentielle et l'innovation.

Pourquoi abandonner Walmart ?

Dans le vaste paysage du commerce électronique, Walmart est l'un des géants. Il propose une vaste gamme de produits, des prix compétitifs et une large clientèle. Par conséquent, l'extraction de données à partir du site Web de Walmart peut fournir des informations précieuses à diverses fins, allant des études de marché et du suivi des prix à l'analyse de la concurrence et à la gestion des stocks.

Pourquoi abandonner Walmart
  1. Veille Concurrentielle:Pour les entreprises, la surveillance des listes de produits, des prix et des avis clients des concurrents sur Walmart fournit des informations précieuses sur le marché. Vous pouvez ajuster votre stratégie de tarification, optimiser les descriptions de produits ou adapter vos efforts marketing en fonction des données en temps réel.
  2. Market Research:Le scraping Web vous permet de suivre les tendances du marché et les préférences des consommateurs. Vous pouvez identifier les produits émergents, surveiller la dynamique des prix et obtenir des informations plus approfondies sur le comportement d'achat de votre public cible.
  3. Gestion des stocks:Les détaillants peuvent utiliser les données récupérées pour synchroniser leur inventaire avec les offres de produits de Walmart. Les données en temps réel sur la disponibilité et les prix des produits garantissent que votre inventaire reste compétitif et à jour.
  4. Commentaires des consommateurs:Les avis et les notes des produits sur la plateforme Walmart sont une mine d'or pour connaître l'opinion des clients. L'extraction de ces données vous permet de comprendre ce que les clients aiment ou n'aiment pas dans des produits spécifiques, ce qui facilite le développement et l'amélioration des produits.
  5. Suivi des prix:Walmart ajuste fréquemment les prix de ses produits pour rester compétitif. Si vous êtes un détaillant ou un revendeur, surveiller ces fluctuations de prix peut vous aider à prendre des décisions de tarification éclairées et à rester compétitif sur le marché.

2. Outils et technologies utilisés

Les outils et technologies suivants faciliteront notre voyage dans le monde du scraping Web des pages de produits Walmart :

  • Python:Python est notre langage de programmation préféré en raison de sa simplicité, de sa polyvalence et de son riche écosystème de bibliothèques. Il nous fournit les outils pour écrire le code de scraping et traiter efficacement les données extraites.
  • Base d'exploration Crawling API:Alors que Python nous équipe de capacités de script, nous nous appuierons sur Crawlbase Crawling API pour récupérer les pages de produits Walmart avec précision et fiabilité. Voici pourquoi nous avons choisi d'utiliser cette API :
    • Efficacité: Crawlbase simplifie le processus de création de requêtes HTTP sur les sites Web, de récupération de contenu HTML et de navigation dans les pages Web. Cette efficacité est particulièrement précieuse lors de l'extraction de données à partir de grands sites de commerce électronique comme Walmart.
    • Fiabilité: La base de crawl Crawling API est conçu pour gérer les subtilités du scraping Web, telles que la gestion des cookies, la gestion des en-têtes et la gestion des mesures anti-scraping. Il garantit que nous pouvons accéder aux données dont nous avons besoin de manière cohérente, sans interruption.
    • Évolutivité:Que vous récupériez quelques pages de produits ou des milliers, Crawlbase offre une évolutivité. Crawling API offre la possibilité de faire tourner les adresses IP, ce qui garantit l'anonymat et réduit le risque d'être bloqué par des sites Web. Il peut gérer facilement des projets de scraping Web à petite et à grande échelle.
    • Enrichissement des données:Au-delà du contenu HTML de base, Crawlbase peut extraire des données supplémentaires, telles que le contenu rendu par JavaScript, ce qui en fait un choix robuste pour le scraping de sites Web dynamiques.

Maintenant que nous avons établi l'importance du scraping Web et les avantages spécifiques du scraping des pages de produits de Walmart, approfondissons les aspects techniques. Nous commencerons par configurer notre environnement, obtenir les outils nécessaires et nous préparer au voyage passionnant du scraping Web.

3. Configuration

Avant de nous lancer dans notre aventure de scraping Web pour extraire des données précieuses des pages de produits Walmart, il est essentiel de configurer notre environnement. Cette section vous guidera à travers les étapes nécessaires pour préparer votre système au scraping Web. Nous aborderons l'installation de Python et des bibliothèques essentielles, la création d'un environnement virtuel et l'obtention d'une clé API Crawlbase.

Installation de Python et des bibliothèques essentielles

Python est le cœur de notre opération de scraping Web, et nous aurons besoin de quelques bibliothèques essentielles pour rendre notre tâche plus gérable. Suivez ces étapes pour configurer Python et les bibliothèques requises :

  • Installation de Python: Si vous n'avez pas encore installé Python sur votre système, vous pouvez télécharger la dernière version à partir du site officiel PythonSélectionnez la version appropriée pour votre système d’exploitation (Windows, macOS ou Linux).

  • Gestionnaire de paquets - pip:Python est livré avec un puissant gestionnaire de paquets appelé pip. Il vous permet d'installer et de gérer facilement des packages Python. Pour vérifier si pip est installé, ouvrez votre terminal ou votre invite de commande et exécutez la commande suivante :

    1
    pip --version
    • Remarque : If pip n'est pas installé, le programme d'installation de Python l'inclut généralement. Vous pouvez également vous référer à la documentation officielle de pip pour les instructions d'installation.
  • Bibliothèques essentielles:Nous aurons besoin de deux bibliothèques Python fondamentales pour le scraping Web :

    • Bibliothèque Crawlbase:La bibliothèque Python Crawlbase nous permet de faire des requêtes HTTP à Crawlbase Crawling API, simplifiant le processus de récupération des pages Web et de gestion des réponses. Pour l'installer, utilisez pip :
    1
    pip installe crawlbase
    • Belle soupe: Beautiful Soup est une bibliothèque Python qui permet d'analyser facilement le code HTML et d'extraire des données à partir de pages Web. Pour l'installer, utilisez pip :
    1
    pip installer beautifulsoup4
    • Bibliothèque des pandas:De plus, nous utiliserons également la bibliothèque Pandas pour un stockage et une manipulation efficaces des données. Pandas fournit des structures de données et des outils d'analyse de données puissants. Pour installer Pandas, utilisez pip :
    1
    pip installer des pandas

Avec Python et ces bibliothèques essentielles en place, nous sommes prêts à passer à l’étape suivante : créer un environnement virtuel.

Création d'un environnement virtuel

La création d'un environnement virtuel est une bonne pratique lorsque vous travaillez sur des projets Python. Elle vous permet d'isoler les dépendances spécifiques au projet, évitant ainsi les conflits avec les packages à l'échelle du système. Pour créer un environnement virtuel, procédez comme suit :

  1. Ouvrir un terminal ou une invite de commande:Lancez votre terminal ou votre invite de commande, selon votre système d’exploitation.
  2. Accédez à votre répertoire de projets: Utilisez la commande cd pour accéder au répertoire dans lequel vous prévoyez de travailler sur votre projet de scraping Web. Par exemple :
1
cd chemin/vers/votre/répertoire/de/projet
  1. Créer l'environnement virtuel:Exécutez la commande suivante pour créer un environnement virtuel :
1
python -m venv walmart-venv

Cette commande créera un dossier nommé « walmart-venv » dans votre répertoire de projet, contenant un environnement Python propre.

  1. Activer l'environnement virtuel:En fonction de votre système d'exploitation, utilisez la commande appropriée pour activer l'environnement virtuel :
  • Windows:
    1
    walmart-venv\Scripts\activer
  • macOS et Linux:
    1
    source walmart-venv/bin/activate

Une fois activé, l'invite de votre terminal devrait changer pour indiquer que vous travaillez désormais dans l'environnement virtuel.

Une fois votre environnement virtuel configuré et activé, vous pouvez installer des packages spécifiques au projet et travailler sur votre code de scraping Web dans un environnement isolé.

Obtention d'un jeton API Crawlbase

Nous utiliserons Crawlbase Crawling API pour extraire efficacement les données des sites Web. Cette API simplifie le processus de création de requêtes HTTP sur les sites Web, de gestion de la rotation des adresses IP et de gestion des obstacles Web tels que les CAPTCHA. Voici comment obtenir votre jeton d'API Crawlbase :

  1. Visitez le site Web de Crawlbase: Aller sur le site web de Site Web de Crawlbase dans votre navigateur Web.
  2. Inscription ou Connexion: Si vous n'avez pas encore de compte, créez un compte Crawlbase. Si vous avez un compte, connectez-vous.
  3. Obtenez votre jeton API: Une fois connecté, accédez à la documentation pour obtenir votre jeton API. Crawlbase permet aux utilisateurs de choisir entre deux types de jetons : un jeton normal (TCP) et un jeton JavaScript (JS). Optez pour le jeton normal lorsque vous traitez avec des sites Web qui présentent des modifications minimes, tels que les sites Web statiques. Cependant, si votre site cible s'appuie sur JavaScript pour fonctionner ou si des données cruciales sont générées via JavaScript du côté de l'utilisateur, le jeton JavaScript devient indispensable. Par exemple, lors de l'extraction de données de Walmart, le jeton JavaScript est la clé pour accéder aux informations souhaitées. Vous pouvez obtenir votre jeton API ici.
  4. Protégez votre jeton API: Votre jeton d'API est un atout précieux, alors conservez-le en sécurité. Veuillez ne pas le partager publiquement et évitez de le soumettre à des systèmes de contrôle de version comme Git. Vous utiliserez ce jeton d'API dans votre code Python pour accéder à Crawlbase Crawling API.

Avec Python et les bibliothèques essentielles installées, un environnement virtuel créé et un jeton API Crawlbase en main, vous êtes bien préparé pour vous lancer dans le scraping Web des pages de produits Walmart. Dans les sections suivantes, nous explorerons la structure des pages Walmart et commencerons à effectuer des requêtes HTTP pour récupérer les données dont nous avons besoin.

4. Comprendre la structure de la page de recherche de Walmart

Dans cette section, nous allons décortiquer la mise en page du site Web de Walmart, identifier les points de données clés que nous souhaitons extraire et explorer comment inspecter le code HTML de la page pour dériver les sélecteurs CSS essentiels à l'extraction des données. Il est essentiel de comprendre ces principes fondamentaux pour nous lancer dans notre voyage vers l'extraction efficace des pages de produits Walmart.

Présentation d'une page de recherche Walmart

Pour extraire efficacement les données des pages de recherche de Walmart, il est impératif de comprendre la mise en page soigneusement élaborée de ces pages. Walmart a conçu ses pages de résultats de recherche en tenant compte de l'expérience utilisateur, mais ce format structuré se prête également bien aux efforts de scraping Web.

Voici une analyse détaillée des éléments essentiels que l'on trouve généralement sur une page de recherche Walmart typique :

Page de recherche Walmart

Barre de recherche:Postée en haut de la page, la barre de recherche sert de passerelle vers la vaste base de données de produits de Walmart. Les acheteurs utilisent cette fonctionnalité pour saisir leurs requêtes de recherche et lancer l'exploration des produits.

Grille de résultats de recherche:La page présente une grille de listes de produits juste en dessous des filtres de recherche. Chaque liste contient des informations essentielles, notamment le titre du produit, le prix et les notes. Ces points de données sont les joyaux de la couronne de notre mission de scraping Web.

Fiches produits: Chaque fiche produit est encapsulée dans une fiche produit, ce qui en fait une entité discrète au sein de la grille. Ces fiches incluent généralement une image, le titre du produit, son prix et ses notes. L'extraction de données à partir de ces fiches est notre objectif principal lors du scraping Web.

Contrôles de pagination:Dans les situations où les résultats de recherche s'étendent au-delà d'une seule page, Walmart inclut judicieusement des contrôles de pagination au bas de la page. Ces contrôles permettent aux utilisateurs de naviguer dans des pages de résultats supplémentaires. En tant que scrapers, nous devons être équipés pour gérer la pagination pour une collecte de données complète.

Filtres et options de tri:Walmart propose aux utilisateurs divers filtres et options de tri pour affiner leurs résultats de recherche. Bien que ces fonctionnalités soient essentielles pour les utilisateurs, elles constituent souvent d'autres objectifs de recherche Web.

Inspection du code HTML pour obtenir des sélecteurs CSS

Nous devons identifier les éléments HTML qui contiennent les informations que nous recherchons pour extraire des données des pages Web. C'est là que les outils de développement Web et les outils de développement de navigateur viennent à notre secours. Voyons comment vous pouvez inspecter la structure HTML et dénicher ces précieux sélecteurs CSS :

Inspecter la page de recherche de Walmart
  1. Ouvrir la page Web:Accédez au site Web de Walmart et accédez à une page de recherche qui suscite votre intérêt.
  2. Faites un clic droit et inspectez: Utilisez votre clic droit sur un élément que vous souhaitez extraire (par exemple, une fiche produit) et sélectionnez « Inspecter » ou « Inspecter l'élément » dans le menu contextuel. Cette incantation mystique fera apparaître les outils de développement du navigateur.
  3. Localiser la source HTML:Dans les limites des outils de développement, le code source HTML de la page Web dévoilera ses secrets. Passez votre curseur sur divers éléments du panneau HTML et voyez les parties correspondantes de la page Web s'illuminer comme par magie.
  4. Identifier les sélecteurs CSS:Pour libérer les données d'un élément particulier, faites un clic droit dessus dans les outils de développement et choisissez avec élégance « Copier » > « Copier le sélecteur ». Cette manœuvre élégante transportera le sélecteur CSS de cet élément dans votre presse-papiers, prêt à être utilisé dans vos incantations de scraping Web.

En fouillant profondément dans le HTML et en extrayant ces sélecteurs CSS insaisissables, vous serez armé pour cibler avec précision les bons éléments lors de la création de votre symphonie de scraping Web. Dans les sections suivantes, ces sélecteurs serviront de chaînes éthérées qui résonnent avec les données, les extrayant des pages Web de Walmart avec finesse.

Maintenant que nous avons exploré en profondeur la structure labyrinthique du site Web de Walmart et que nous nous sommes équipés de l'art de la découverte de sélecteurs CSS, nous sommes prêts à passer de la théorie à la pratique. Dans les sections suivantes, nous nous lancerons dans un voyage de codage exaltant, où nous utiliserons Python, le Crawlbase Crawling API, et Beautiful Soup pour extraire habilement les données des pages de recherche de Walmart.

5. Construisez votre grattoir Walmart

Maintenant que nous avons posé les bases en comprenant l'importance du scraping Web, en configurant notre environnement et en explorant la structure complexe du site Web de Walmart, il est temps de retrousser nos manches et de créer notre scraper Walmart. Dans cette section, nous vous guiderons tout au long du processus étape par étape, en utilisant la puissante bibliothèque Python Crawlbase ainsi que la programmation Python pour faire de votre parcours de scraping Web un jeu d'enfant.

Utilisation de la bibliothèque Python Crawlbase

La bibliothèque Python Crawlbase sert de wrapper léger et sans dépendance pour les API Crawlbase, simplifiant les subtilités du scraping Web. Cet outil polyvalent simplifie des tâches telles que l'envoi de requêtes HTTP aux sites Web, la gestion habile de la rotation IP et la manœuvre gracieuse à travers les obstacles Web, y compris les CAPTCHA. Pour vous lancer dans votre aventure de scraping Web avec cette bibliothèque, vous pouvez suivre ces étapes en toute transparence :

  1. Importer: Pour manier le redoutable Crawling API Depuis la bibliothèque Crawlbase, vous devez commencer par importer la classe indispensable CrawlingAPI. Cette étape fondamentale ouvre la voie à l'accès à une gamme d'API Crawlbase. Voici un aperçu de la manière dont vous pouvez importer ces API :
1
de base d'exploration importer API d'exploration
  1. Initialisation:Avec votre jeton d'API Crawlbase bien en main, la prochaine étape cruciale consiste à initialiser la classe CrawlingAPI. Ce moment crucial connecte votre code aux vastes capacités de Crawlbase :
1
api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })
  1. Envoi d'une demande:Une fois que votre classe CrawlingAPI est prête avec votre jeton API Crawlbase, vous êtes prêt à envoyer des requêtes à vos sites Web cibles. Voici un exemple pratique de création d'une requête GET adaptée à l'extraction des listes d'iPhone à partir de la page de recherche de Walmart :
1
2
3
réponse = api.get('https://www.walmart.com/search?q=iPhone')
if réponse['code_d'état']== 200:
impression(réponse['corps'])

Avec la bibliothèque Python Crawlbase comme fidèle compagnon, vous pouvez vous lancer en toute confiance dans votre odyssée de scraping Web. Pour une plongée plus approfondie dans ses capacités, vous pouvez explorer plus de détails ici.

Gestion des paramètres et personnalisation des réponses

Avant de vous lancer dans votre aventure de scraping Web, il est essentiel de comprendre comment gérer efficacement les paramètres et personnaliser les réponses à l'aide de Crawlbase Crawling API. Cette flexibilité vous permet de concevoir vos demandes avec précision pour répondre à vos besoins uniques, offrant ainsi une expérience de scraping véritablement personnalisée et efficace. Plongeons-nous dans les subtilités de la gestion des paramètres et de la personnalisation des réponses.

Gestion des paramètres avec Crawlbase Crawling API

La Crawlbase Crawling API met à votre disposition une multitude de paramètres, vous permettant d'affiner vos demandes de scraping. Ces paramètres peuvent être adaptés à vos besoins uniques, rendant vos efforts de scraping Web plus efficaces et plus précis. Vous pouvez explorer la liste complète des paramètres disponibles dans le Documentation de l'API.

Pour illustrer l'utilisation des paramètres avec un exemple pratique, imaginons que vous souhaitiez extraire les listes de produits iPhone de Walmart. Vous pouvez faire une requête GET sur la page de recherche de Walmart tout en spécifiant des paramètres tels que « user_agent » et « format » :

1
2
3
4
5
6
réponse = api.get('https://www.walmart.com/search?q=iPhone', {
'utilisateur_agent': « Mozilla/5.0 (Windows NT 6.2 ; rv:20.0) Gecko/20121202 Firefox/30.0 »,
'format': 'json'
})
if réponse['code_d'état']== 200:
impression(réponse['corps'])

Dans cet exemple, nous avons défini le paramètre « user_agent » pour imiter un agent utilisateur de navigateur spécifique et choisi le format « JSON » pour la réponse. Ces paramètres vous permettent d'adapter précisément votre demande à vos besoins spécifiques.

Personnalisation des formats de réponse

Lorsque vous interagissez avec Crawlbase, vous avez la possibilité de choisir entre deux formats de réponse : HTML et JSON. Votre choix dépend de vos préférences et de vos besoins d'analyse.

Format de réponse HTML:Si vous sélectionnez le format de réponse HTML (par défaut), vous recevrez le contenu HTML brut de la page Web en guise de réponse. De plus, des paramètres de réponse cruciaux seront ajoutés aux en-têtes de réponse pour un accès facile. Voici un exemple de ce à quoi pourrait ressembler une telle réponse :

1
2
3
4
5
6
7
En-têtes:
url: https://www.walmart.com/search?q=iPhone
statut_original: 200
pc_status: 200

Les chuchotements :
HTML de la page

Format de réponse JSON:Vous pouvez également opter pour le format de réponse JSON. Dans ce cas, vous recevrez un objet JSON bien structuré que votre application pourra traiter sans effort. Cet objet JSON contient toutes les informations nécessaires, y compris les paramètres de réponse. Voici un exemple de réponse JSON :

1
2
3
4
5
6
{
"état_original": "200",
"pc_status": 200,
"url": "https%3A%2F%2Fwalmart.com%2Fsearch%3Fq%3DiPhone",
"corps": "HTML de la page"
}

Grâce à la possibilité de gérer les paramètres et de personnaliser les formats de réponse, vous disposez des outils nécessaires pour affiner vos demandes de scraping et adapter le résultat aux besoins de votre projet. Ce niveau de contrôle garantit une expérience de scraping Web fluide et efficace, vous permettant d'extraire les données précises dont vous avez besoin à partir des pages Web de Walmart.

Récupération de la page de recherche de Walmart

Maintenant que nous avons acquis une solide compréhension des principes fondamentaux du scraping Web et de la manière d'exploiter efficacement la bibliothèque Python Crawlbase, il est temps de se lancer dans le voyage pratique du scraping de la page de recherche de Walmart. Dans cette section axée sur les développeurs, nous allons créer un script Python qui capture habilement les données produit de la page de résultats de recherche de Walmart.

Ce script résume l’essence du scraping Web : effectuer des requêtes HTTP, analyser le contenu HTML et extraire les informations critiques que nous recherchons.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Importer les bibliothèques nécessaires
importer json
de bs4 importer BeautifulSoup
de base d'exploration importer API d'exploration

# Initialisez la classe CrawlingAPI avec votre jeton API Crawlbase
api = API d'exploration({ 'jeton': 'VOTRE_CRAWLBASE_JS_TOKEN' })

# Définir la requête de recherche
requête_recherche = « iPhone »

# Construire l'URL de la requête
URL de recherche = f'https://www.walmart.com/search?q={requête_recherche}'

Essai:
# Effectuez une requête GET sur la page de recherche de Walmart
réponse = api.get(search_url, { 'page_wait': 5000 })

# Vérifiez si la demande a abouti (code d'état 200)
if réponse['code_d'état']== 200:
# Contenu HTML extrait après décodage des données d'octets
search_page_html = réponse['corps'].décoder('latin1')

# Analyser le contenu HTML à l'aide de Beautiful Soup
soupe = BeautifulSoup(search_page_html, 'html.parser')

# Extraire les détails du produit
détails_du_produit = []

# Rechercher tous les conteneurs de produits sur la page
produit_contenants = soup.select('div[io-id] div[id-élément-de-données]')

# Itérer sur chaque conteneur de produit
pour CONTENANT in conteneurs_produits :
produit = {}

# Extraire le prix du produit
produit['prix'] = conteneur.select_one('div[data-automation-id="prix-du-produit"] span.f2').texte.strip()

# Extraire le titre du produit
produit['Titre'] = conteneur.select_one('span[data-automation-id="titre-du-produit"]').texte.strip()

# Extraire la note du produit
ratingElement = conteneur.select_one('span[data-automation-id="titre-du-produit"]').find_parent('portée').find_next('div').select_one('span.w_iUH7')
produit['notation'] = ratingElement.texte.strip() if Élément de notation d'autre ''

# Ajoutez les détails du produit à la liste
product_details.append(produit)

impression(json.dumps(détails_du_produit, indent=2))

sauf Exception as e:
impression(f"Une erreur s'est produite : {e}")

Dans ce script, nous importons BeautifulSoup et la bibliothèque Python Crawlbase. Après avoir initialisé la classe CrawlingAPI avec votre jeton d'API Crawlbase, nous définissons la requête de recherche, construisons l'URL de la page de recherche Walmart et effectuons une requête GET à l'aide de l'API Crawlbase.

En cas de requête réussie (code d'état 200), nous extrayons et analysons le contenu HTML de la page de recherche avec BeautifulSoup. Nous nous concentrons ensuite sur les conteneurs de produits, en extrayant les détails essentiels du produit comme le titre, le prix et la note.
Ces détails sont organisés dans une liste pour un traitement ultérieur, et le script se termine par l'impression des données produit extraites. Ce script fournit une démonstration pratique de l'extraction d'informations précieuses à partir de la page de résultats de recherche de Walmart à l'aide de techniques de scraping Web.

Exemple de sortie :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[
{
"prix": "399",
« Titre »: "AT&T Apple iPhone 11, 64 Go, noir - Smartphone prépayé",
"notation": « 3.8 sur 5 étoiles. 202 avis »
},
{
"prix": "249",
« Titre »: « Straight Talk Apple iPhone 11, 64 Go, noir – Smartphone prépayé [verrouillé sur Straight Talk] »,
"notation": « 4.2 sur 5 étoiles. 3244 avis »
},
{
"prix": "249",
« Titre »: « Walmart Family Mobile Apple iPhone 11, 64 Go, noir – Smartphone prépayé [verrouillé sur Walmart Family Mobile] »,
"notation": « 4.1 sur 5 étoiles. 371 avis »
},
{
"prix": "149",
« Titre »: « Straight Talk Apple iPhone SE (2022-3e génération) 5G, 64 Go, Midnight - Smartphone prépayé [verrouillé sur Straight Talk] »,
"notation": « 4.3 sur 5 étoiles. 576 avis »
},
{
"prix": "31",
« Titre »: « AT&T iPhone 15 Pro Max 256 Go Titane Naturel »,
"notation": « 5 sur 5 étoiles. 2 avis »
},
{
"prix": "31",
« Titre »: « Verizon iPhone 15 Pro Max 256 Go Titane naturel »,
"notation": « 3.7 sur 5 étoiles. 3 avis »
},
{
"prix": "26",
« Titre »: « AT&T iPhone 15 Pro 128 Go Titane Naturel »,
"notation": ""
},
{
"prix": "26",
« Titre »: « Verizon iPhone 15 Pro 128 Go Titane naturel »,
"notation": « 4 sur 5 étoiles. 1 avis »
},
{
"prix": "24",
« Titre »: « AT&T iPhone 15 Plus 128 Go Noir »,
"notation": ""
},
....
]

Gestion de la pagination sur la page de recherche

Les résultats de recherche de Walmart sont souvent paginés, ce qui signifie qu'il existe plusieurs pages de résultats de recherche à parcourir. Pour extraire toutes les données pertinentes, nous devons gérer la pagination en parcourant les pages et en extrayant les données de chaque page.

Voici un exemple de la manière d'extraire les résultats de recherche de plusieurs pages sur Walmart :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
importer json
de bs4 importer BeautifulSoup
de base d'exploration importer API d'exploration

# Initialisez la classe CrawlingAPI avec votre jeton API Crawlbase
api = API d'exploration({'jeton': 'VOTRE_CRAWLBASE_JS_TOKEN'})

def obtenir_le_total_des_pages(URL de recherche):
Essai:
réponse = api.get(search_url, {'page_wait': 5000})
if réponse['code_d'état']== 200:
search_page_html = réponse['corps'].décoder('latin1')
soupe = BeautifulSoup(search_page_html, 'html.parser')
nombre_total = int(soupe.select_one('nav[aria-label="pagination"] ul li:nth-last-child(2)').texte)
retourner pages_totales
sauf Exception as e:
impression(f"Une erreur s'est produite lors de la récupération du nombre total de pages : {e}")
retourner 1

def gratter_page(L'URL de la page):
Essai:
réponse = api.get(page_url, {'page_wait': 5000})
if réponse['code_d'état']== 200:
page_html = réponse['corps'].décoder('latin1')
page_soup = BelleSoup(page_html, 'html.parser')
conteneurs_produits = page_soup.select('div[io-id] div[id-élément-de-données]')
détails_du_produit = []
pour CONTENANT in conteneurs_produits :
produit = {}
produit['prix'] = conteneur.select_one('div[data-automation-id="prix-du-produit"] span.f2').texte.strip()
produit['Titre'] = conteneur.select_one('span[data-automation-id="titre-du-produit"]').texte.strip()
ratingElement = conteneur.select_one('span[data-automation-id="titre-du-produit"]').find_parent('portée').find_next('div').select_one('span.w_iUH7')
produit['notation'] = ratingElement.texte.strip() if Élément de notation d'autre ''
product_details.append(produit)
retourner détails_du_produit
sauf Exception as e:
impression(f"Une erreur s'est produite lors du scraping de la page : {e}")
retourner []

def principal
# Définir la requête de recherche
requête_recherche = « iPhone »

# Construire l'URL de la requête pour la première page
URL de recherche = f'https://www.walmart.com/search?q={requête_recherche}'

total_pages = obtenir_total_pages(url_de_recherche)
tous_les_détails_du_produit = []

pour page in gamme(1, nombre_total_de_pages + 1):
page_url = f'{search_url}&page={page}'
page_product_details = scrape_page(page_url)
tous_les_détails_du_produit.extend(page_détails_du_produit)

# Imprimez ou enregistrez tous les détails du produit
impression(json.dumps(tous_les_détails_du_produit, indent=2))

if __nom__ == "__principale__":
principale()

Ce script Python extrait efficacement les données produit des pages de résultats de recherche de Walmart tout en gérant la pagination de manière transparente. Il accomplit cela grâce à deux fonctions principales : get_total_pages et scrape_page.

La série get_total_pages La fonction récupère le nombre total de pages pour une requête de recherche donnée en envoyant une requête GET à la page de recherche initiale. Elle analyse ensuite le contenu HTML, en extrayant le dernier numéro de page de la liste de pagination. Cela garantit que le script est conscient du nombre de pages qu'il doit récupérer.

La série scrape_page La fonction gère le scraping réel des données produit. Elle saisit une URL de page de recherche spécifique, effectue une requête GET et utilise BeautifulSoup pour extraire les détails du produit tels que le titre, le prix et, éventuellement, la note. Elle tient compte avec élégance des cas où les produits peuvent ne pas avoir de note.

Dans le main fonction, le script définit la requête de recherche, construit l'URL de la page de recherche initiale et calcule le nombre total de pages. Il parcourt ensuite chaque page, récupère les détails du produit et les accumule dans une liste. Enfin, il imprime les détails du produit collectés dans un format JSON soigné. Cette approche permet une extraction complète des données à partir de plusieurs pages de résultats de recherche, garantissant qu'aucun détail du produit n'est négligé lors de la pagination.

Stockage de données

Après avoir extrait avec succès les données des pages de recherche de Walmart, l'étape cruciale suivante consiste à stocker ces précieuses informations pour une analyse et une référence ultérieures. Dans cette section, nous allons explorer deux méthodes courantes de stockage des données : l'enregistrement des données extraites dans un fichier CSV et leur stockage dans une base de données SQLite. Ces méthodes vous permettent d'organiser et de gérer efficacement vos données extraites.

Stockage des données récupérées dans un fichier CSV

Le format CSV (Comma-Separated Values) est un format largement utilisé pour stocker des données tabulaires. Il s'agit d'un moyen simple et lisible par l'homme de stocker des données structurées, ce qui en fait un excellent choix pour enregistrer vos données de produits Walmart récupérées.

Nous allons étendre notre script de scraping Web précédent pour inclure une étape permettant d'enregistrer les données extraites dans un fichier CSV à l'aide de la bibliothèque Python populaire, pandas. Voici une version mise à jour du script :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
importer pandas as pd
de bs4 importer BeautifulSoup
de base d'exploration importer API d'exploration

# Initialisez la classe CrawlingAPI avec votre jeton API Crawlbase
api = API d'exploration({'jeton': 'VOTRE_CRAWLBASE_JS_TOKEN'})

def obtenir_le_total_des_pages(URL de recherche):
# ... (Code précédent pour obtenir le nombre total de pages)

def gratter_page(L'URL de la page):
# ... (Code précédent pour récupérer une page)

def principal
# Définir la requête de recherche
requête_recherche = « iPhone »

# Construire l'URL de la requête pour la première page
URL de recherche = f'https://www.walmart.com/search?q={requête_recherche}'

total_pages = obtenir_total_pages(url_de_recherche)
tous_les_détails_du_produit = []

pour page in gamme(1, nombre_total_de_pages + 1):
page_url = f'{search_url}&page={page}'
page_product_details = scrape_page(page_url)
tous_les_détails_du_produit.extend(page_détails_du_produit)

# Enregistrer les données récupérées sous forme de fichier CSV
df = pd.DataFrame(tous_les_détails_du_produit)
df.to_csv('données_produits_walmart.csv', indice=Faux)

if __nom__ == "__principale__":
principale()

Dans ce script mis à jour, nous avons introduit pandas, une puissante bibliothèque de manipulation et d'analyse de données. Après avoir récupéré et accumulé les détails du produit dans le all_product_details liste, nous créons un DataFrame pandas à partir de ces données. Ensuite, nous utilisons le to_csv méthode pour enregistrer le DataFrame dans un fichier CSV nommé « walmart_product_data.csv » dans le répertoire actuel. index=False garantit que nous n'enregistrons pas l'index du DataFrame en tant que colonne séparée dans le fichier CSV.

Vous pouvez facilement travailler avec et analyser vos données récupérées en utilisant pandas. Ce fichier CSV peut être ouvert dans divers logiciels de tableur ou importé dans d'autres outils d'analyse de données pour une exploration et une visualisation plus approfondies.

Stockage des données récupérées dans une base de données SQLite

Si vous préférez une approche plus structurée et plus conviviale pour le stockage des données, SQLite est un moteur de base de données léger et sans serveur qui peut être un excellent choix. Vous pouvez créer une table de base de données pour stocker vos données extraites, ce qui permet une récupération et une manipulation efficaces des données. Voici comment vous pouvez modifier le script pour stocker des données dans une base de données SQLite :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
importer json
importer sqlite3
de bs4 importer BeautifulSoup
de base d'exploration importer API d'exploration

# Initialisez la classe CrawlingAPI avec votre jeton API Crawlbase
api = API d'exploration({'jeton': 'VOTRE_CRAWLBASE_JS_TOKEN'})

def créer_base de données
conn = sqlite3.connect('walmart_products.db')
curseur = conn.curseur()
curseur.execute('''CRÉER UNE TABLE SI IL N'EXISTE PAS de produits (
id INTEGER CLÉ PRIMAIRE AUTO-INCRÉMENTATION,
titre TEXTE,
prix TEXTE,
note TEXTE
)''')
conn.commit()
conn.close()

def enregistrer_dans_la_base_de_données(données,):
conn = sqlite3.connect('walmart_products.db')
curseur = conn.curseur()

# Créer une liste de tuples à partir des données
data_tuples = [(produit['Titre'], produit['prix'], produit['notation']) pour produits in données]

# Insérer des données dans la table des produits
curseur.executemany('' '
INSÉRER DANS les produits (titre, prix, note)
VALEURS (?, ?, ?)
'' ', tuples_de_données)

conn.commit()
conn.close()

def obtenir_le_total_des_pages(URL de recherche):
# ... (inchangé)

def gratter_page(L'URL de la page):
# ... (inchangé)

def principal
# Créer la base de données et la table des produits
créer_base_de_données()

# Définir la requête de recherche
requête_recherche = « iPhone »

# Construire l'URL de la requête pour la première page
URL de recherche = f'https://www.walmart.com/search?q={requête_recherche}'

total_pages = obtenir_total_pages(url_de_recherche)
tous_les_détails_du_produit = []

pour page in gamme(1, nombre_total_de_pages + 1):
page_url = f'{search_url}&page={page}'
page_product_details = scrape_page(page_url)
tous_les_détails_du_produit.extend(page_détails_du_produit)

# Insérer les données récupérées dans la base de données SQLite
enregistrer_dans_la_base_de_données(tous_les_détails_du_produit)

if __nom__ == "__principale__":
principale()

Dans ce code mis à jour, nous avons ajouté des fonctions pour créer la base de données et la table SQLite ( create_database ) et enregistrer les données récupérées dans la base de données ( save_to_database ). La fonction create_database vérifie si la base de données et la table existent et les crée si ce n'est pas le cas. La fonction save_to_database insère les données récupérées dans la table « products ».
En exécutant ce code, vous stockerez vos données de produits Walmart récupérées dans une base de données SQLite nommée « walmart_products.db ». Vous pouvez ensuite récupérer et manipuler ces données à l'aide de requêtes SQL ou y accéder par programmation dans vos projets Python.

6. Conclusion

Dans cette exploration complète du Web scraping, nous avons exploré l'immense potentiel de l'exploitation des données du Web. Le Web scraping, l'art d'extraire des informations des sites Web, est devenu un outil indispensable pour les entreprises, les chercheurs et les esprits curieux. Il sert de pont entre l'étendue illimitée des données en ligne et les besoins spécifiques en données, permettant aux utilisateurs d'accéder, d'analyser et d'utiliser des informations auparavant cachées dans les profondeurs d'Internet.

Nous avons mis l'accent sur l'importance du scraping Web, notamment lorsqu'il est appliqué à un géant de la vente au détail comme Walmart. Nous avons dévoilé comment le scraping du site Web de Walmart peut fournir une multitude d'informations, allant de la veille concurrentielle et des études de marché à la gestion efficace des stocks et à l'analyse du sentiment des consommateurs. Cette mine de données peut révolutionner la prise de décision dans tous les secteurs.

Nous nous sommes dotés du savoir-faire technique pour mettre en place l'environnement nécessaire au scraping web. De la mise en place de Python et des bibliothèques essentielles à l'obtention d'une Crawlbase Crawling API Grâce à ce jeton, nous avons posé des bases solides. Nous avons navigué dans la structure Web complexe de Walmart, perfectionnant nos compétences en matière d'inspection HTML pour les sélecteurs CSS qui deviendraient nos outils d'extraction de données.

La praticité a rencontré la théorie lorsque nous avons construit un scraper Walmart en utilisant Python et Crawlbase Crawling API. Ce script dynamique a capturé les données produit des pages de résultats de recherche de Walmart tout en gérant habilement la pagination. Enfin, nous avons compris l'importance du stockage des données, en offrant des informations sur la sauvegarde des données extraites dans des fichiers CSV et des bases de données SQLite, permettant aux utilisateurs de gérer et d'analyser efficacement leurs trésors d'informations extraites.

Le scraping Web est plus qu'une prouesse technologique : c'est une passerelle vers des décisions éclairées, l'innovation et un avantage commercial dans le paysage actuel axé sur les données. Armé de ces connaissances, vous êtes prêt à exploiter le potentiel du scraping Web, en révélant les précieuses pépites de données qui peuvent remodeler vos stratégies commerciales ou alimenter vos efforts de recherche. Bon scraping !

7. Questions fréquemment posées

Q. Comment choisir les bonnes données à extraire des pages de recherche de Walmart ?

La sélection des données appropriées à extraire des pages de recherche de Walmart dépend de vos objectifs spécifiques. Les points de données courants incluent les titres de produits, les prix, les notes et les liens. Tenez compte des informations les plus pertinentes pour votre projet, qu'il s'agisse d'une analyse des prix concurrentiels, d'une recherche de produits ou d'une surveillance des tendances. Le blog fournit des informations sur les points de données clés que vous pouvez extraire à diverses fins.

Q. Puis-je consulter les pages de recherche de Walmart en temps réel pour connaître les mises à jour des prix ?

Oui, vous pouvez extraire les pages de recherche de Walmart pour surveiller les mises à jour de prix en temps réel. Le scraping Web vous permet de suivre les changements de prix des produits, ce qui peut être utile pour comparer les prix, ajuster votre propre stratégie de tarification ou vous informer des baisses ou des augmentations de prix. Le blog présente les aspects techniques du scraping des pages de recherche de Walmart, que vous pouvez adapter pour une surveillance en temps réel.

Q. Comment puis-je gérer la pagination lors de l'extraction des résultats de recherche de Walmart ?

La gestion de la pagination dans le scraping Web est cruciale lorsque vous traitez plusieurs pages de résultats de recherche. Vous pouvez parcourir les pages de résultats de recherche de Walmart en incrémentant le numéro de page dans l'URL et en effectuant des requêtes HTTP ultérieures. Le script peut être conçu pour continuer à extraire les données de chaque page jusqu'à ce qu'il ne reste plus de pages à extraire, garantissant ainsi la collecte de données complètes à partir des résultats de recherche.

Q. Quels sont les défis courants en matière de web scraping ?

Le scraping Web peut être difficile en raison de plusieurs facteurs :

  • Structure du site Web:Les sites Web modifient souvent leur structure, ce qui rend nécessaire l'adaptation du code de scraping.
  • Mesures anti-grattage:Les sites Web peuvent utiliser des mesures telles que les CAPTCHA, le blocage des IP ou la gestion des sessions pour dissuader les scrapers.
  • Qualité des données:Les données extraites peuvent contenir des incohérences ou des erreurs qui nécessitent un nettoyage et une validation.
  • Préoccupations éthiques:Le scraping doit être effectué de manière éthique, en respectant les conditions du site Web et les lois sur la confidentialité.