Target, un géant de la vente au détail, dispose d'une plateforme en ligne robuste qui attire des millions de visiteurs. Doté d'une interface conviviale et d'un catalogue de produits complet, le site Web de Target est devenu une mine d'or pour les passionnés de données. Le site propose diverses catégories, allant de l'électronique et des vêtements aux articles ménagers, ce qui en fait une cible de choix pour ceux qui recherchent des informations complètes sur le marché.

Le site Web de Target offre un paysage riche. Avec des millions de pages de produits, des avis clients et des informations de tarification dynamiques, le potentiel d'extraction de données précieuses est vaste. En décembre 2023, les statistiques soulignent encore davantage l'importance de la présence en ligne de Target. Pas moins de 234.3 millions de personnes de différents coins du monde ont visité le site, avec un afflux prédominant en provenance des États-Unis.

Données du marché cible

Qu'il s'agisse de suivre les tendances des produits, de surveiller les prix des concurrents ou d'analyser les sentiments des clients via des avis, les données cachées dans les étagères numériques de Target ont une valeur immense pour les entreprises et les chercheurs.

Pourquoi se lancer dans le scraping de cibles ? La réponse réside dans la richesse des opportunités qu'il offre. En exploitant la puissance d'un scraper de cibles, on peut acquérir un avantage concurrentiel et rester en tête dans un paysage de marché en constante évolution. Rejoignez-nous dans ce voyage pendant que nous parcourons les nuances du scraping Web à l'aide de Python, en commençant par une approche pratique de type « DIY » et en explorant plus tard l'efficacité du Crawlbase Crawling APIDécouvrons les secrets enfouis dans les allées numériques de Target et dotons-nous des outils nécessaires pour extraire efficacement les données de Target.

Table des matières

  1. Comprendre la structure SERP de Target
  • Structure des pages de liste des produits cibles
  • Principaux points de données à extraire
  1. Configuration de votre environnement
  • Installation de Python et des bibliothèques requises
  • Choisir un IDE de développement
  1. Approche DIY avec Python
  • Utilisation de la bibliothèque de requêtes
  • Inspecter le site Web cible pour les sélecteurs CSS
  • Utilisation de BeautifulSoup pour l'analyse HTML
  1. Inconvénients de l’approche DIY
  • Problèmes liés à la fiabilité et à l'évolutivité
  • Les défis de la maintenance au fil du temps
  1. Crawlbase Crawling API: Surmonter les limites du bricolage
  • Comment cela simplifie le processus de scraping Web
  • Avantages de l'utilisation d'une API dédiée au scraping Web
  1. Grattoir à cible avec Crawlbase Crawling API
  • Crawlbase Inscription et jeton API
  • Accès Crawling API et Crawlbase Bibliothèque
  • Extraire les données des produits cibles sans effort
  • Présentation de l'efficacité et de la fiabilité améliorées
  1. Comparaison : DIY vs. Crawlbase Crawling API
  2. Réflexions finales
  3. Foire aux questions (FAQ)

Comprendre la structure SERP de Target

Lorsque vous naviguez sur le site Web de Target à l'aide du scraping Web, il est essentiel de comprendre la structure de la page de résultats des moteurs de recherche (SERP) de Target. Voici une répartition des composants de ces pages et des points de données cruciaux que nous cherchons à extraire :

Structure des pages de liste des produits cibles

Imaginez le site Web de Target comme un catalogue bien organisé. Tout comme un journal comporte des titres, des articles principaux et des sections annexes, les pages de listes de produits de Target suivent un format structuré.

Page de recherche de cible
  • Vitrine des produits:Cela s'apparente aux articles principaux d'un journal présentant les produits qui correspondent à vos critères de recherche.
  • Barre de recherche:Semblable à l'espace des titres dans un journal, la barre de recherche est l'endroit où vous saisissez ce que vous recherchez.
  • Renseignements supplémentaires:Parfois, vous trouverez des éléments supplémentaires sur le côté : du contenu promotionnel, des produits associés ou des détails rapides sur des articles sélectionnés.
  • Pied de page:En bas, vous pouvez rencontrer des liens vers d’autres sections du site Web de Target ou trouver plus d’informations sur les politiques et les conditions.

La compréhension de cette disposition permet à notre scraper Target de naviguer efficacement dans les allées virtuelles.

Principaux points de données à extraire

Maintenant que nous avons une bonne compréhension de la structure SERP de Target, identifions les points de données essentiels pour l'extraction :

  1. Listes de produits:L’objectif principal de notre mission de scraping Target est d’obtenir une liste de produits pertinents pour la recherche.
  2. Noms des produits : Tout comme les titres d'un journal donnent une idée rapide des principales histoires, les noms des produits servent de titres à chaque article répertorié.
  3. Descriptions de produit:Sous chaque nom de produit, vous trouverez généralement une brève description ou un extrait offrant un aperçu des fonctionnalités du produit sans cliquer dessus.
  4. Contenu promotionnel:Parfois, les premiers résultats peuvent inclure du contenu promotionnel. Il est essentiel de reconnaître ces contenus comme étant promotionnels et de les différencier des listings organiques.
  5. Produits annexes:Vers le bas, il peut y avoir des suggestions de produits connexes, fournissant des idées supplémentaires pour des recherches ultérieures ou des sujets connexes.

La compréhension de la structure SERP de Target guide nos efforts de scraping, nous permettant de collecter efficacement des informations pertinentes à partir des étagères numériques de Target.

Configuration de votre environnement

Pour nous lancer dans l'exploration des données Target, il faut disposer d'un environnement bien préparé. Commençons par nous assurer que vous disposez des outils essentiels.

Installation de Python et bibliothèques requises

Commencez par installer Python, le langage de programmation polyvalent qui servira de base au scraping Web. Visitez le site officiel Python et téléchargez la dernière version adaptée à votre système d'exploitation. Lors de l'installation, assurez-vous de cocher la case « Ajouter Python au PATH » pour une expérience fluide.

Maintenant, équipons-nous des bibliothèques clés pour notre aventure de scraping :

  • Bibliothèque des requêtes:Un outil indispensable pour réaliser des requêtes HTTP en Python. Installez-le en ouvrant votre terminal ou votre invite de commande et en saisissant la commande suivante :
1
demandes d'installation pip
  • Bibliothèque BeautifulSoup:Cette bibliothèque, couplée à ses options d'analyse, nous permet de naviguer et d'analyser le HTML, en extrayant les informations souhaitées. Installez-la avec :
1
pip installer beautifulsoup4
  • Crawlbase Bibliothèque:Pour tirer parti de la Crawlbase Crawling API de manière transparente, installez le Crawlbase Bibliothèque Python :
1
pip installe crawlbase

Votre environnement Python est désormais doté des outils nécessaires pour lancer notre effort de scraping Target.

Choisir un IDE de développement

La sélection d'un environnement de développement intégré (IDE) confortable améliore votre expérience de codage. Les choix les plus courants incluent :

  • Code Visual Studio (VSCode): Un éditeur de code léger et riche en fonctionnalités. Installez-le depuis Site officiel de VSCode.
  • PyCharm:Un puissant IDE Python doté de fonctionnalités avancées. Téléchargez l'édition communautaire ici.
  • Google Colab: Une plateforme basée sur le cloud vous permettant d'écrire et d'exécuter du code Python dans un environnement collaboratif. Accédez-y via Google Colab.

Avec Python, Requests et BeautifulSoup dans votre arsenal et votre IDE choisi prêt, vous êtes bien préparé pour vous lancer dans la création de votre Target Scraper. Plongeons dans l'approche DIY à l'aide de ces outils.

Approche DIY avec Python

Maintenant que notre environnement est configuré, retroussons nos manches et plongeons-nous dans l'approche de récupération des données Target à l'aide de Python, de Requests et de BeautifulSoup. Suivez ces étapes pour naviguer dans les subtilités du site Web Target et extraire les informations souhaitées.

Utilisation de la bibliothèque de requêtes

La bibliothèque de requêtes sera notre passerelle vers le Web, nous permettant de récupérer le contenu HTML de la page Web Target. Dans notre exemple, concentrons-nous sur la récupération de données liées aux « pulls pour femmes » à partir du site Web Target. Utilisez l'extrait de code suivant pour envoyer une requête au site Web Target :

1
2
3
4
5
6
7
8
9
10
11
importer demandes
à partir de urllib.parse importer Devis

URL = f'https://www.target.com/s?searchTerm=${citation("pulls pour femmes")}'
réponse = demandes.get(url)

if réponse.status_code == 200:
html_content = réponse.texte
impression(contenu_html)
d'autre:
impression(f'Erreur : {réponse.status_code}')

Ouvrez votre éditeur de texte ou IDE préféré, copiez le code fourni et enregistrez-le dans un fichier Python. Par exemple, nommez-le target_scraper.py.

Exécutez le script :

Ouvrez votre terminal ou votre invite de commande et accédez au répertoire dans lequel vous avez enregistré target_scraper.pyExécutez le script à l’aide de la commande suivante :

1
Grattoir à cible Python

Lorsque vous appuyez sur Entrée, votre script prend vie, envoyant une requête au site Web cible, récupérant le contenu HTML et l'affichant sur votre terminal.

Inspecter le site Web cible pour les sélecteurs CSS

Inspecter la page de recherche cible
  1. Accéder aux outils de développement:Cliquez avec le bouton droit de la souris sur la page Web dans le navigateur et sélectionnez « Inspecter » (ou « Inspecter l'élément »). Cela ouvre les outils de développement, vous permettant d'explorer la structure HTML.
  2. Naviguer dans le HTML:Dans les outils de développement, parcourez les éléments HTML pour identifier les données spécifiques que vous souhaitez extraire. Recherchez des identifiants, des classes ou des balises uniques associés aux informations cibles.
  3. Identifier les sélecteurs CSS: Notez les sélecteurs CSS correspondant aux éléments qui vous intéressent. Ces sélecteurs serviront de pointeurs à votre script Python pour localiser et extraire les données souhaitées.

Utilisation de BeautifulSoup pour l'analyse HTML

Une fois le contenu HTML en main et les sélecteurs CSS identifiés, utilisons BeautifulSoup pour analyser et parcourir la structure. Pour l'exemple, nous allons extraire des détails essentiels comme le titre du produit, la note, le nombre d'avis, le prix et le lien URL (URL de la page produit) pour chaque produit répertorié sur la page de recherche cible spécifiée. Les données récupérées sont ensuite structurées et peuvent être stockées pour une analyse ou un traitement ultérieur. Étendons notre script précédent et récupérons ces informations à partir du code HTML.

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
66
importer demandes
à partir de urllib.parse importer Devis
à partir de bs4 importer BeautifulSoup
importer json

def extraire_note(un élément):
# Obtenir l'attribut de style
style_attribute = élément.get('style')

# Analyser la valeur de largeur à partir de l'attribut de style
if attribut_style :
style_properties = style_attribute.split(';')
pour soutenir in style_properties:
prop = prop.strip()
if prop.commence par('largeur:'):
largeur_valeur = prop[len('largeur:'):].bande()
if largeur_valeur.endswith('%'):
pourcentage_d'évaluation = flotter(largeur_valeur[:-1])
# En supposant que la note soit sur 5
note_sur_5 = (pourcentage_note / 100) * 5
retourner Round(note_sur_5, 2)

retourner Aucun

def liste_de_cibles_de_scrap(url):
réponse = demandes.get(url)

résultats_de_recherche = []

if réponse.status_code == 200:
html_content = réponse.texte
soupe = BeautifulSoup(contenu_html, 'html.parser')

produits = soup.select('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

pour produits in produits:
titre_élément = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')
rating_element = produit.select_one('div[data-test="détails-du-produit"] div[data-ref="masque-d'évaluation"]')
review_count_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="nombre-d'évaluations"]')
price_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="prix-actuel"]')
produit_url_element = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')

données_produit = {
'Titre': élément_titre.texte.strip() if élément_titre d'autre Aucun,
'Notation':extraire_note(élément_note) if élément_de_notation d'autre Aucun,
« Nombre de commentaires »:review_count_element.text.strip() if review_count_element d'autre Aucun,
'Prix': élément_prix.texte.strip() if élément_prix d'autre Aucun,
« URL du produit »: « https://www.target.com » + élément_url_du_produit['href'] if élément_url_du_produit d'autre Aucun
}

résultats_de_recherche.append(données_produit)

d'autre:
impression(f'Erreur : {réponse.status_code}')

retourner Résultats de recherche

def principal
terme_de_recherche = "pulls pour femmes"
URL = f'https://www.target.com/s?searchTerm={citation(terme de recherche)}'
résultats = scrape_target_listing(url)

impression(json.dumps(résultats, indent=2))

if __nom__ == "__principale__":
principale()

Vous recevrez un résultat vide :

1
[]

Mais pourquoi ? Cela se produit parce que Target utilise JavaScript pour générer dynamiquement des résultats de recherche sur sa page SERP. Lorsque vous envoyez une requête HTTP à l'URL Target, la réponse HTML manque de données significatives, ce qui entraîne une absence d'informations utiles.

Cette approche DIY pose les bases de l'extraction des données Target à l'aide de Python. Cependant, elle comporte ses limites, notamment des défis potentiels en matière de gestion du contenu dynamique, de fiabilité et d'évolutivité.

Inconvénients de l’approche DIY

Bien que l'approche DIY utilisant Python, Requests et BeautifulSoup offre une entrée simple dans le scraping Web, il est essentiel d'être conscient de ses inconvénients inhérents. Lors de la création du scraper Target avec une approche DIY, deux défis majeurs apparaissent :

  1. Gestion du contenu dynamique:Le scraping DIY peut échouer lorsqu'il s'agit de sites Web qui dépendent fortement du contenu dynamique chargé via JavaScript. Par conséquent, les données extraites peuvent ne pas représenter entièrement les informations en temps réel disponibles sur le site Web de la cible.
  2. Limitation de débit et blocage IP:Les serveurs Web mettent souvent en œuvre des mécanismes de limitation de débit ou de blocage d'IP pour éviter les abus. Les scripts DIY peuvent déclencher par inadvertance ces mécanismes, entraînant des restrictions d'accès temporaires ou permanentes, entravant la fiabilité et l'évolutivité de votre opération de scraping.

Les défis de la maintenance au fil du temps

  1. Modifications de la structure HTML:Les sites Web subissent fréquemment des mises à jour et des refontes, ce qui modifie la structure HTML. Toute modification de la structure du site cible peut perturber votre scraper DIY, nécessitant des ajustements réguliers pour maintenir la fonctionnalité.
  2. Modifications du sélecteur CSS:Si Target modifie les sélecteurs CSS associés aux données que vous récupérez, votre script risque de ne pas parvenir à localiser les informations souhaitées. Une surveillance et une adaptation régulières deviennent essentielles pour contrer ces changements.

La compréhension de ces inconvénients souligne la nécessité d’une solution plus robuste et plus durable.

Crawlbase Crawling API: Surmonter les limites du bricolage

Dans notre quête d'une extraction efficace des données sur les produits Target, Crawlbase Crawling API apparaît comme une solution puissante, offrant une approche dédiée qui transcende les limites de la méthode DIY. Explorons comment cette API simplifie le processus de scraping Web et dévoile les avantages de l'utilisation d'un outil spécialisé pour cette tâche.

Comment cela simplifie le processus de scraping Web

Crawlbase Crawling API simplifie le scraping Web pour les développeurs grâce à sa conception conviviale et efficace. En utilisant le paramètres Grâce à cette API, nous pouvons gérer n'importe quel problème de scraping. Voici un bref aperçu de ses principales fonctionnalités :

Crawlbase Crawling API Fonctionnement
  1. Paramètres adaptables:Personnalisez les requêtes API avec des paramètres tels que « format », « user_agent » et « page_wait » pour adapter le processus de scraping à des exigences spécifiques.
  2. Format de données flexible:Choisissez entre les formats de réponse JSON et HTML, en alignant l'API sur les divers besoins des développeurs et en simplifiant l'extraction des données.
  3. Gestion des cookies et des en-têtes:Accédez à des informations cruciales telles que les cookies et les en-têtes du site Web cible à l'aide de « get_cookies » et « get_headers », qui sont essentiels pour les tâches d'authentification ou de suivi.
  4. Gestion du contenu dynamique:Excellent dans l'exploration de pages avec du contenu dynamique, y compris des éléments JavaScript, à l'aide de paramètres tels que « page_wait » et « ajax_wait ».
  5. Rotation des adresses IP: Améliorez l'anonymat en changeant d'adresses IP, en minimisant le risque d'être bloqué par des sites Web et en garantissant une exploration Web réussie.
  6. Spécification géographique:Utilisez le paramètre « pays » pour spécifier les emplacements géographiques, ce qui est inestimable pour extraire des données spécifiques à une région.
  7. Prise en charge du réseau Tor:Activez le paramètre « tor_network » pour explorer les sites Web Onion sur le réseau Tor, améliorant ainsi en toute sécurité la confidentialité et l'accès au contenu du Dark Web.
  8. Capture Capture:Capturez le contexte visuel avec la fonction de capture d'écran, offrant une couche supplémentaire de compréhension aux données collectées.
  9. Intégration des récupérateurs de données:Utilisez de manière transparente des scrapers de données prédéfinis pour simplifier l'extraction d'informations spécifiques à partir de pages Web, réduisant ainsi la complexité de la logique de scraping personnalisée.
  10. Exploration asynchrone:Prise en charge de l'exploration asynchrone avec le paramètre « async », fournissant aux développeurs un identifiant de requête (RID) pour une récupération facile des données explorées à partir du stockage cloud.
  11. Analyse automatique:Réduisez la charge de travail de post-traitement en utilisant le paramètre d'analyse automatique, qui fournit des informations analysées au format JSON, améliorant ainsi l'efficacité de l'extraction et de l'interprétation des données.

Avantages de l'utilisation d'une API dédiée au Web Scraping

Crawlbase Crawling API apporte une multitude d'avantages, ce qui en fait un choix privilégié pour les développeurs engagés dans des tâches de scraping Web :

  1. Fiabilité:L'API est conçue pour gérer divers scénarios de scraping, garantissant la fiabilité même face à des pages Web dynamiques ou complexes.
  2. Évolutivité: CrawlbaseL'infrastructure de permet une mise à l'échelle efficace, s'adaptant à des projets de scraping plus importants et garantissant des performances constantes.
  3. Personnalisation:Les développeurs peuvent personnaliser leurs paramètres de scraping, en adaptant l'API aux exigences uniques de leurs sites Web cibles.
  4. Efficacité:L'optimisation de l'API en termes de vitesse et de performances se traduit par une extraction de données plus rapide, permettant ainsi des informations et une prise de décision plus rapides.
  5. Assistance complète: Crawlbase fournit une documentation et un support complets, aidant les développeurs à naviguer dans les fonctionnalités de l'API et à résoudre les défis rencontrés.

Alors que nous passons de l’approche DIY à la mise en œuvre de Crawlbase Crawling API promet de simplifier le processus de scraping web et de proposer une gamme d'avantages qui optimisent l'efficacité des efforts de scraping ciblé. Dans la section suivante, nous vous guiderons à travers les étapes pratiques de son utilisation. Crawlbase Crawling API pour extraire les données du produit cible sans effort.

Grattoir à cible avec Crawlbase Crawling API

Maintenant que nous avons exploré les capacités du Crawlbase Crawling API, laissez-vous guider à travers les étapes pratiques de la construction d'un Target Scraper à l'aide de cet outil puissant.

Crawlbase Inscription et jeton API

Récupération des données cibles à l'aide de Crawlbase Crawling API commence par la création d'un compte sur le Crawlbase plateforme. Laissez-nous vous guider à travers le processus de configuration de votre compte pour Crawlbase:

  1. Accédez à Crawlbase:Ouvrez votre navigateur Web et accédez au Crawlbase sites Internet Page d'inscription pour démarrer votre parcours d'inscription.
  2. Fournissez vos informations d'identification: Saisissez votre adresse e-mail et créez un mot de passe pour votre Crawlbase compte. Assurez-vous de remplir les informations nécessaires avec précision.
  3. Processus de vérification:Un e-mail de vérification peut arriver dans votre boîte de réception après avoir soumis vos informations. Soyez attentif et suivez les étapes de vérification décrites dans l'e-mail.
  4. Se connecter:Une fois votre compte vérifié, revenez à la Crawlbase site Web et connectez-vous en utilisant les informations d'identification que vous venez de créer.
  5. Sécurisez votre jeton API:Accéder au Crawlbase Crawling API nécessite un jeton API, et vous pouvez trouver le vôtre dans votre documentation de compte.

Note rapide: Crawlbase Nous proposons deux types de jetons : l'un pour les sites web statiques, l'autre pour les sites web dynamiques ou JavaScript. Puisque nous nous concentrons sur le scraping de Target, nous utiliserons un jeton JS. Bonus : Crawlbase offre une allocation initiale de 1,000 XNUMX demandes gratuites pour le Crawling API, ce qui en fait un choix idéal pour notre expédition de scraping Web.

Accès Crawling API et Crawlbase Bibliothèque

Utiliser Crawlbase bibliothèque math en Python pour interagir de manière transparente avec le Crawling API. L'extrait de code fourni montre comment initialiser et utiliser le Crawling API par l'intermédiaire du Crawlbase Bibliothèque Python.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
à partir de base d'exploration importer API d'exploration
à partir de urllib.parse importer Devis

API_TOKEN = 'VOTRE_CRAWLBASE_JS_TOKEN'
crawling_api = API d'exploration({'jeton':API_TOKEN})

URL = f'https://www.target.com/s?searchTerm=${citation("pulls pour femmes")}'

réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
impression(contenu_html)
d'autre:
impression(f"Échec de la récupération de la page. Crawlbase code d'état : {réponse['en-têtes']['pc_status']}")

Extraire les données du produit cible sans effort

Le Crawlbase Crawling API, nous pouvons facilement collecter des informations sur les produits Target. En utilisant un jeton JS et en ajustant les paramètres d'API comme ajax_wait et page_wait, nous pouvons gérer le rendu JavaScript. Améliorons notre script DIY en incorporant le Crawling API.

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
à partir de base d'exploration importer API d'exploration
à partir de urllib.parse importer Devis
à partir de bs4 importer BeautifulSoup
importer json

def extraire_note(un élément):
# ... (inchangé)

def liste_de_cibles_de_scrap(API, URL):
réponse = api.get(url, {'ajax_wait': 'vrai', 'page_wait': 5000 })

résultats_de_recherche = []

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
soupe = BeautifulSoup(contenu_html, 'html.parser')

produits = soup.select('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

pour produits in produits:
titre_élément = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')
rating_element = produit.select_one('div[data-test="détails-du-produit"] div[data-ref="masque-d'évaluation"]')
review_count_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="nombre-d'évaluations"]')
price_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="prix-actuel"]')
produit_url_element = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')

données_produit = {
'Titre': élément_titre.texte.strip() if élément_titre d'autre Aucun,
'Notation':extraire_note(élément_note) if élément_de_notation d'autre Aucun,
« Nombre de commentaires »:review_count_element.text.strip() if review_count_element d'autre Aucun,
'Prix': élément_prix.texte.strip() if élément_prix d'autre Aucun,
« URL du produit »: « https://www.target.com » + élément_url_du_produit['href'] if élément_url_du_produit d'autre Aucun
}

résultats_de_recherche.append(données_produit)

d'autre:
impression(f'Erreur : {réponse["en-têtes"]["pc_status"]}')

retourner Résultats de recherche

def principal
API_TOKEN = 'VOTRE_CRAWLBASE_JS_TOKEN'
crawling_api = API d'exploration({'jeton':API_TOKEN})

terme_de_recherche = "pulls pour femmes"
URL = f'https://www.target.com/s?searchTerm={citation(terme de recherche)}'
résultats = scrape_target_listing(crawling_api, url)

impression(json.dumps(résultats, ensure_ascii=Faux, retrait=2))

if __nom__ == "__principale__":
principale()

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[
{
"Titre": Pull ras du cou 100 % pur cachemire pour femme Style Republic,
"Notation": nul,
« Nombre d'avis »: nul,
"Prix": «$ 99.00»,
« URL du produit »: "https://www.target.com/p/style-republic-100-pure-cashmere-crew-neck-women-s-sweater/-/A-90570284?preselect=90570311#lnk=sametab"
},
{
"Titre": Pull col V 100 % pur cachemire pour femme Style Republic,
"Notation": nul,
« Nombre d'avis »: nul,
"Prix": «$ 99.00»,
« URL du produit »: "https://www.target.com/p/style-republic-100-pure-cashmere-v-neck-women-s-sweater/-/A-90571072?preselect=90571114#lnk=sametab"
},
{
"Titre": « Pull ras du cou en maille fine pour femme – A New Day™ »,
"Notation": 3.9,
« Nombre d'avis »: "587",
"Prix": «$ 20.00»,
« URL du produit »: "https://www.target.com/p/women-s-fine-gauge-crewneck-sweater-a-new-day/-/A-88228365?preselect=88228183#lnk=sametab"
},
{
"Titre": « Pull ras du cou en cachemire pour femme – Universal Thread™ »,
"Notation": 4.2,
« Nombre d'avis »: "746",
"Prix": « 20.00 $ - 25.00 $ »,
« URL du produit »: "https://www.target.com/p/women-s-crew-neck-cashmere-like-pullover-sweater-universal-thread/-/A-88062926?preselect=87817915#lnk=sametab"
},
{
"Titre": Pull ras du cou à imprimé graphique pour femme - A New Day™,
"Notation": 4.6,
« Nombre d'avis »: "469",
"Prix": «$ 21.25»,
« URL du produit »: "https://www.target.com/p/women-s-crewneck-graphic-pullover-sweater-a-new-day/-/A-89130911?preselect=88826973#lnk=sametab"
},
{
"Titre": « Pull col V en maille fine pour femme – A New Day™ »,
"Notation": 3.9,
« Nombre d'avis »: "419",
"Prix": «$ 20.00»,
« URL du produit »: "https://www.target.com/p/women-s-fine-gauge-v-neck-sweater-a-new-day/-/A-88228797?preselect=88749045#lnk=sametab"
},
{
"Titre": "Cardigan en tricot rayé ouvert devant long pour femme grande taille Agnes Orinda",
"Notation": 1.0,
« Nombre d'avis »: "1",
"Prix": «$ 33.99»,
« URL du produit »: "https://www.target.com/p/agnes-orinda-women-s-plus-size-long-open-front-striped-sweater-knit-cardigans/-/A-87334185?preselect=88786783#lnk =mêmeonglet"
},
{
"Titre": "Pull en tricot à col en V profond et enveloppant pour femme de grande taille Agnes Orinda",
"Notation": nul,
« Nombre d'avis »: nul,
"Prix": « 36.69 $ - 52.49 $ »,
« URL du produit »: "https://www.target.com/p/agnes-orinda-women-s-plus-size-knit-deep-v-neck-wrap-curvy-pullover-sweaters/-/A-89666687?preselect=89666694 #lnk=mêmetab"
},
{
"Titre": "Cardigan décontracté léger à pois suisses à manches 3/4 et devant ouvert pour femmes de grande taille d'Agnes Orinda",
"Notation": nul,
« Nombre d'avis »: nul,
"Prix": «$ 29.99»,
« URL du produit »: "https://www.target.com/p/agnes-orinda-women-s-plus-size-open-front-3-4-sleeve-swiss-dots-lightweight-casual-cardigan/-/A-90521798 ?preselect=90521806#lnk=sametab"
},
{
"Titre": « Pull cardigan de printemps pour femme – A New Day™ »,
"Notation": nul,
« Nombre d'avis »: nul,
"Prix": «$ 28.00»,
« URL du produit »: "https://www.target.com/p/women-s-spring-cardigan-sweater-a-new-day/-/A-89531651?preselect=89531635#lnk=sametab"
},
{
"Titre": « Pull de printemps pour femme – A New Day™ »,
"Notation": 5.0,
« Nombre d'avis »: "3",
"Prix": «$ 25.00»,
« URL du produit »: "https://www.target.com/p/women-s-spring-pullover-sweater-a-new-day/-/A-89528449?preselect=89528429#lnk=sametab"
},
{
"Titre": « Cardigan en tricot côtelé pour femme – Universal Thread™ »,
"Notation": 4.3,
« Nombre d'avis »: "11",
"Prix": «$ 25.00»,
« URL du produit »: "https://www.target.com/p/women-s-rib-knit-cardigan-universal-thread/-/A-89436873?preselect=89229541#lnk=sametab"
},
....... plus
]

Gestion de la pagination

La collecte d'informations à partir des résultats de recherche de Target implique de naviguer sur plusieurs pages, chacune affichant un ensemble de listes de produits. Pour garantir un ensemble de données complet, nous devons gérer la pagination. Cela signifie parcourir les pages de résultats et demander plus de données si nécessaire.

Utilisation du site Web cible &Nao paramètre dans l'URL pour gérer la pagination. Il spécifie le point de départ pour l'affichage des résultats sur chaque page. Par exemple, &Nao=1 signifie le premier ensemble de 24 résultats, et &Nao=24 pointe vers l'ensemble suivant. Ce paramètre nous permet de collecter systématiquement des données sur différentes pages et de créer un ensemble de données complet pour l'analyse.

Améliorons notre script existant pour gérer de manière transparente la pagination.

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
66
à partir de base d'exploration importer API d'exploration
à partir de urllib.parse importer Devis
à partir de bs4 importer BeautifulSoup

def extraire_note(un élément):
# ... (inchangé)

def liste_de_cibles_de_scrap(API, URL de base):
résultats_de_recherche = []

numéro_de_page = 1
par_page = 24 # Nombre de produits par page

tout en Vrai:
# Construire l'URL avec le numéro de page actuel
URL = f'{base_url}&Nao={(numéro_de_page - 1) * par_page + 1}'

réponse = api.get(url, {'ajax_wait': 'vrai', 'page_wait': 5000 })

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
soupe = BeautifulSoup(contenu_html, 'html.parser')

produits = soup.select('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

pour produits in produits:
titre_élément = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')
rating_element = produit.select_one('div[data-test="détails-du-produit"] div[data-ref="masque-d'évaluation"]')
review_count_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="nombre-d'évaluations"]')
price_element = produit.select_one('div[data-test="détails-du-produit"] span[data-test="prix-actuel"]')
produit_url_element = produit.select_one('div[data-test="détails-du-produit"] a[data-test="titre-du-produit"]')

données_produit = {
'Titre': élément_titre.texte.strip() if élément_titre d'autre Aucun,
'Notation':extraire_note(élément_note) if élément_de_notation d'autre Aucun,
« Nombre de commentaires »:review_count_element.text.strip() if review_count_element d'autre Aucun,
'Prix': élément_prix.texte.strip() if élément_prix d'autre Aucun,
« URL du produit »: « https://www.target.com » + élément_url_du_produit['href'] if élément_url_du_produit d'autre Aucun
}

résultats_de_recherche.append(données_produit)

numéro_de_page += 1

# Briser la boucle s'il n'y a pas de page suivante
if pas soupe.select('bouton[data-test="suivant"]:non([désactivé]'):
pause

d'autre:
impression(f'Erreur : {réponse["en-têtes"]["pc_status"]}')
pause # Briser la boucle en cas d'erreur

retourner Résultats de recherche

def principal
API_TOKEN = 'VOTRE_CRAWLBASE_JS_TOKEN'
crawling_api = API d'exploration({'jeton':API_TOKEN})

terme_de_recherche = "pulls pour femmes"
base_url = f'https://www.target.com/s?searchTerm={citation(terme de recherche)}'
résultats = scrape_target_listing(crawling_api, base_url)

# traiter ultérieurement les données de liste des produits récupérés

if __nom__ == "__principale__":
principale()

Note: Crawlbase dispose de nombreux grattoirs intégrés que vous pouvez utiliser avec notre Crawling API. Apprenez-en plus sur eux dans notre DocumentationNous créons également des solutions sur mesure selon vos besoins. Notre équipe qualifiée peut élaborer une solution sur mesure. Ainsi, vous n'avez pas à vous soucier de la surveillance constante des détails du site web et des sélecteurs CSS. Crawlbase Nous nous en chargeons pour vous, afin que vous puissiez vous concentrer sur vos objectifs. Contactez-nous ici.

Comparaison : DIY vs. Crawlbase Crawling API

Pour extraire les données des produits Target, le choix de la bonne méthode peut avoir un impact significatif sur l'efficacité et la réussite de vos efforts de scraping web. Comparons l'approche traditionnelle « Do-It-Yourself » (DIY) avec Python, Requests et BeautifulSoup à l'approche simplifiée. Crawlbase Crawling API.

Python DIY vs. Crawlbase Crawling API

Réflexions finales

Pour extraire les données des produits Target, simplicité et efficacité sont essentielles. Si l'approche « DIY » nécessite un certain apprentissage, Crawlbase Crawling API s'impose comme un choix judicieux. Dites adieu aux problèmes de fiabilité et d'évolutivité ; optez pour Crawlbase Crawling API pour une solution simple, fiable et évolutive pour récupérer Target sans effort.

Si vous souhaitez découvrir le scraping à partir d'autres plateformes de commerce électronique, n'hésitez pas à explorer les guides complets suivants.

(I.e. Comment récupérer des données sur Amazon

(I.e. Comment gratter Walmart

(I.e. Comment récupérer des fonds sur AliExpress

(I.e. Comment récupérer Flipkart

(I.e. Comment récupérer des données Etsy

Le scraping Web peut poser des problèmes et votre réussite est importante. Si vous avez besoin de conseils supplémentaires ou rencontrez des obstacles, n'hésitez pas à nous contacter. équipe dédiée est là pour vous accompagner dans votre voyage dans le monde du scraping web. Bon scraping !

Foire aux questions (FAQ)

Les pratiques de Web scraping peuvent être soumises à des considérations juridiques, et il est essentiel de consulter les conditions de service et robots.txt fichier pour assurer le respect de leurs politiques. Priorisez toujours les pratiques de scraping éthiques et responsables, en respectant les conditions générales du site Web. De plus, il est essentiel de rester informé des lois et réglementations pertinentes relatives au scraping Web dans la juridiction spécifique pour une approche légale et respectueuse.

Q2 : Quels sont les défis courants rencontrés dans le web scraping ?

Quelle que soit l'approche choisie, le scraping Web rencontre souvent des défis tels que le contenu dynamique, l'adaptabilité aux changements du site Web et l'importance de maintenir la conformité éthique et légale. La gestion du contenu dynamique, tel que les éléments générés par JavaScript, nécessite des techniques sophistiquées pour une extraction complète des données. De plus, les sites Web peuvent subir des changements structurels au fil du temps, ce qui nécessite des mises à jour régulières des scripts de scraping. Le respect des normes éthiques et légales est essentiel pour garantir des pratiques de scraping Web responsables et respectueuses.

Q3 : Pourquoi choisir le Crawlbase Crawling API pour gratter Target via la méthode DIY ?

Crawlbase Crawling API est le choix privilégié pour le scraping de Target en raison de son processus rationalisé, de son adaptabilité, de son efficacité et de sa fiabilité. Il excelle dans la gestion de contenu dynamique, la prise en charge de la rotation IP pour maintenir l'anonymat et la garantie de performances constantes même dans les projets de scraping à grande échelle. La conception conviviale de l'API et ses fonctionnalités complètes en font une solution supérieure à la méthode DIY.

Q4: est le Crawlbase Crawling API convient-il aux projets de grattage à grande échelle ?

Absolument. le Crawlbase Crawling API est spécialement conçu pour l'évolutivité, ce qui le rend particulièrement adapté aux projets de scraping à grande échelle. Son architecture efficace garantit des performances optimales, permettant aux développeurs de gérer sans effort des tâches d'extraction de données étendues. L'adaptabilité et la fiabilité de l'API en font un choix robuste pour les projets de différentes échelles.