Tokopedia, l'une des plus grandes plateformes de commerce électronique d'Indonésie, compte plus de 90 millions d'utilisateurs actifs et 350 millions de visites mensuelles. La plateforme propose une large gamme de produits, allant de l'électronique à la mode, en passant par les produits d'épicerie et les soins personnels. Pour les entreprises et les développeurs, l'extraction des données de Tokopedia peut vous donner un aperçu des tendances des produits, de la stratégie de tarification et des préférences des clients.

Tokopedia utilise JavaScript pour restituer son contenu ; la méthode de scraping traditionnelle ne fonctionne pas. Crawlbase Crawling API facilite la gestion transparente du contenu rendu par JavaScript. Dans ce tutoriel, vous apprendrez à utiliser Python et Crawlbase pour extraire les listes de recherche et les pages de produits de Tokopedia pour les noms de produits, les prix et les notes.

Commençons!

Table des Matières

  1. Pourquoi récupérer les données de Tokopedia ?
  2. Données clés à extraire de Tokopedia
  3. Crawlbase Crawling API pour le scraping de Tokopedia
  • Crawlbase Bibliothèque Python
  1. Configuration de votre environnement Python
  • Installation de Python et bibliothèques requises
  • Choisir un EDI
  1. Suppression des listes de recherche Tokopedia
  • Inspection du code HTML pour les sélecteurs CSS
  • Rédaction du scraper de listes de recherche
  • Gestion de la pagination dans Tokopedia
  • Stockage des données dans un fichier JSON
  • Code complet
  1. Grattage des pages de produits Tokopedia
  • Inspection du code HTML pour les sélecteurs CSS
  • Rédaction du scraper de page produit
  • Stockage des données dans un fichier JSON
  • Code complet
  1. Réflexions finales
  2. Foire aux questions (FAQ)

Pourquoi récupérer les données de Tokopedia ?

L'extraction des données de Tokopedia peut être bénéfique pour les entreprises et les développeurs. En tant que l'une des plus grandes plateformes de commerce électronique d'Indonésie, Tokopedia dispose de nombreuses informations sur les produits, les prix et le comportement des clients. En extrayant ces données, vous pouvez prendre de l'avance sur le marché en ligne.

Il existe de nombreuses raisons pour lesquelles on pourrait choisir de récupérer des données de Tokopedia :

Une image qui montre les raisons de supprimer Tokopedia
  1. Étude de Marché:Connaître la demande actuelle vous aidera à planifier vos stocks et votre marketing. Des opportunités peuvent toujours être trouvées en examinant les tendances générales.
  2. Comparaison de prix:Il est possible de scrapper Tokopedia et d'obtenir plusieurs prix sur des produits de différentes catégories. Cela permettrait d'effectuer des ajustements de prix afin de rester compétitif.
  3. Analyse de la concurrence:Compiler les données sur les produits des concurrents vous aidera à comprendre comment ils se positionnent et où sont leurs points faibles.
  4. Connaissances des clients :Consulter les avis et les notes sur les produits aidera à comprendre les principaux avantages et inconvénients de divers produits du point de vue des clients.
  5. La disponibilité des produits:Surveillez les produits afin de savoir quand les produits les plus demandés sont en rupture de stock, augmentez les stocks pour apaiser les clients.

Dans la section suivante, nous verrons ce que nous pouvons extraire de Tokopedia.

Données clés à extraire de Tokopedia

Lorsque vous récupérez des données sur Tokopedia, concentrez-vous sur les points de données importants et vous obtiendrez des informations exploitables pour votre entreprise ou vos recherches. Voici les points de données à récupérer :

  1. Nom du produit: Identifie le produit.
  2. Prix:Pour la surveillance des prix et l'analyse de la concurrence.
  3. Évaluations et commentaires:Pour l'expérience utilisateur et la convivialité des produits.
  4. Disponibilité:Pour le niveau des stocks et la disponibilité des produits.
  5. Informations sur le vendeur: Détails sur les fournisseurs tiers, les évaluations des vendeurs et l'emplacement.
  6. Images du produit:Images pour la représentation visuelle et la compréhension du produit.
  7. Description du produit*:Pour les détails du produit.
  8. Catégorie et étiquettes:Pour l'organisation des produits et l'analyse catégorisée.

En se concentrant sur ces aspects des données, on peut recueillir des informations utiles auprès de Tokopedia qui peuvent aider à affiner ou à prendre de meilleures décisions. Ensuite, nous verrons comment configurer votre environnement Python pour le scraping.

Crawlbase Crawling API pour le scraping de Tokopedia

Crawlbase Crawling API Le scraping de Tokopedia est rapide et simple. Le site web de Tokopedia utilisant du contenu dynamique, une grande partie des données est chargée via JavaScript, ce qui complique le scraping avec les méthodes traditionnelles. Cependant, Crawlbase Crawling API rend les pages comme un vrai navigateur afin que vous puissiez accéder aux données.

Voici pourquoi Crawlbase Crawling API est bon pour scraper Tokopedia :

  • Gère le contenu dynamique: Crawlbase gère les pages lourdes en JavaScript afin que toutes les données du produit soient entièrement chargées et prêtes à être récupérées.
  • Rotation IP:Pour éviter d'être bloqué par les systèmes de sécurité de Tokopedia, Crawlbase fait automatiquement tourner les adresses IP, vous permettant de gratter sans vous soucier des limites de débit ou des interdictions.
  • Performance rapide: Crawlbase vous permet de récupérer efficacement des quantités massives de données tout en économisant du temps et des ressources.
  • Demande personnalisables : Vous pouvez modifier les en-têtes, les cookies et les demandes de contrôle en fonction de vos besoins.

Avec ces fonctionnalités, Crawlbase Crawling API rend le scraping de Tokopedia plus facile et plus efficace.

Crawlbase Bibliothèque Python

Crawlbase Une bibliothèque Python est également disponible pour simplifier le scraping web. Pour utiliser cette bibliothèque, vous aurez besoin d'un jeton d'accès, disponible en signer à Crawlbase.

Voici un exemple de fonction pour envoyer une requête à Crawlbase Crawling API:

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

# Initialiser Crawlbase API avec votre jeton d'accès
crawling_api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })

def créer_une_requête_crawlbase(url):
réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
retourner 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']}")
retourner Aucun

Note: Crawlbase fournit deux types de jetons. Jeton normal pour les sites statiques. Jeton JavaScript (JS) pour le contenu dynamique ou rendu par navigateur, qui est nécessaire pour le scraping de Tokopedia. Crawlbase Vous bénéficiez de 1,000 XNUMX demandes gratuites pour démarrer, et vous pouvez vous inscrire sans carte de crédit. Pour plus d'informations, consultez le Crawlbase Crawling API Documentation.

Dans la section suivante, nous apprendrons comment configurer l'environnement Python pour le scraping Tokopedia.

Configuration de votre environnement Python

Pour commencer à récupérer les données de Tokopedia, vous devez configurer votre environnement Python. Suivez ces étapes pour commencer :

Installation de Python et bibliothèques requises

Assurez-vous que Python est installé sur votre machine. Vous pouvez le télécharger ici. Après l'installation, exécutez la commande suivante pour installer les bibliothèques nécessaires :

1
pip installe crawlbase beautifulsoup4
  • Crawlbase:Pour interagir avec le Crawlbase Crawling API pour gérer le contenu dynamique.
  • BeautifulSoup:Pour analyser et extraire des données HTML.

Ces outils sont essentiels pour extraire efficacement les données de Tokopedia.

Sélection d'un IDE

Choisissez un IDE pour un développement transparent :

Une fois votre environnement configuré, vous pouvez commencer à scraper Tokopedia. Ensuite, nous verrons comment créer Tokopedia SERP Scraper.

Suppression des listes de recherche Tokopedia

Maintenant que votre environnement Python est prêt, nous pouvons commencer à extraire les listes de recherche de Tokopedia. Dans cette section, nous vous guiderons dans l'inspection du code HTML, l'écriture du scraper, la gestion de la pagination et le stockage des données dans un fichier JSON.

Inspection de la structure HTML

Tout d'abord, vous devez inspecter le code HTML de la page de résultats de recherche Tokopedia à partir de laquelle vous souhaitez extraire les listes de produits. Pour cet exemple, nous allons extraire les listes de casques à partir de l'URL suivante :

1
https://www.tokopedia.com/search?q=headset

Ouvrez les outils de développement dans votre navigateur et accédez à cette URL.

Une capture d'écran de la structure HTML des listes de recherche de Tokopedia

Voici quelques sélecteurs clés sur lesquels se concentrer :

  • Titre du produit:Trouvé dans un <span> tag avec classe OWkG6oHwAppMn1hIBsC3pQ== qui contient le nom du produit.
  • Prix: Dans un <div> tag avec classe ELhJqP-Bfiud3i5eBR8NWg== qui affiche le prix du produit.
  • Nom de l'agence:Trouvé dans un <span> tag avec classe X6c-fdwuofj6zGvLKVUaNQ==.
  • Lien produit: Lien vers la page produit trouvé dans un <a> tag avec classe Nq8NlC5Hk9KgVBJzMYBUsg==, accessible via le href attribuer.

Rédaction du scraper de listes de recherche

Nous allons écrire une fonction qui fait une requête au Crawlbase Crawling API, récupère le HTML, puis analyse les données à l'aide de BeautifulSoup.

Voici le code pour extraire les listes de recherche :

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

# Initialiser Crawlbase API avec votre jeton d'accès
crawling_api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })

# Fonction pour obtenir le contenu HTML de Crawlbase
def récupérer_html(url):
choix = {
'ajax_wait': 'vrai',
'page_wait': «5000 '
}
réponse = crawling_api.get(url, options)
if réponse['en-têtes']['pc_status']== «200 ':
retourner réponse['corps'].décoder(« utf-8 »)
d'autre:
impression(f"Échec de la récupération de la page. Code d'état : {réponse['en-têtes']['pc_status']}")
retourner Aucun

# Fonction pour analyser et extraire les données du produit
def analyser_rechercher_listes(html):
soupe = BeautifulSoup(html, 'html.parser')
produits = []

pour produits in soupe.select('div[data-testid="divSRPContentProducts"] div.css-5wh65g'):
nom = produit.select_one('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=').texte.strip() if produit.select_one('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=') d'autre 'N / A'
prix = produit.select_one('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=').texte.strip() if produit.select_one('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=') d'autre 'N / A'
magasin = produit.select_one('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=').texte.strip() if produit.select_one('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=') d'autre 'N / A'
produit_url = produit.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=')['href'] if produit.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=') d'autre 'N / A'

produits.append({
'nom': nom,
'prix': prix,
'magasin': magasin,
'URL_du_produit': URL du produit
})

retourner produits purs

Cette fonction récupère d'abord le code HTML à l'aide de Crawlbase Crawling API et analyse ensuite les données à l'aide de BeautifulSoup pour extraire les informations sur le produit.

Gestion de la pagination dans Tokopedia

Les résultats de recherche de Tokopedia sont répartis sur plusieurs pages. Pour extraire toutes les listes, nous devons gérer la pagination. Chaque page suivante page peut être accessible en ajoutant un paramètre de page à l'URL, tel que ?page=2.

Voici comment gérer la pagination :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Fonction permettant de récupérer plusieurs pages de listes de recherche
def gratter_plusieurs_pages(base_url, max_pages):
tous_produits = []

pour page in gamme(1, max_pages + 1):
url_paginée = f"{base_url}&page={page}"
html_content = fetch_html(url_paginée)

if contenu_html :
produits = parse_search_listings(html_content)
tous_produits.extend(produits)
d'autre:
pause

retourner tous_les_produits

Cette fonction parcourt les pages de résultats de recherche, extrait les listes de produits de chaque page et agrège les résultats.

Stockage des données dans un fichier JSON

Après avoir extrait les données, vous pouvez les stocker dans un fichier JSON pour un accès facile et une utilisation ultérieure. Voici comment procéder :

1
2
3
4
5
# Fonction pour enregistrer des données dans un fichier JSON
def enregistrer_dans_json(données, nom de fichier='tokopedia_search_results.json'):
avec ouvert(nom de fichier, 'w') as fichier_json :
json.dump(données, fichier_json, indent=4)
impression(f"Données enregistrées dans {nom de fichier}")

Exemple de code complet

Vous trouverez ci-dessous le code complet permettant d'extraire les listes de recherche Tokopedia pour les casques, y compris la pagination et l'enregistrement des données dans un fichier JSON :

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

# Initialiser Crawlbase API avec votre jeton d'accès
crawling_api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })

def récupérer_html(url):
choix = {
'ajax_wait': 'vrai',
'page_wait': «5000 '
}
réponse = crawling_api.get(url, options)
if réponse['en-têtes']['pc_status']== «200 ':
retourner réponse['corps'].décoder(« utf-8 »)
d'autre:
impression(f"Échec de la récupération de la page. Code d'état : {réponse['en-têtes']['pc_status']}")
retourner Aucun

def analyser_rechercher_listes(html):
soupe = BeautifulSoup(html, 'html.parser')
produits = []

pour produits in soupe.select('div[data-testid="divSRPContentProducts"] div.css-5wh65g'):
nom = produit.select_one('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=').texte.strip() if produit.select_one('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=') d'autre 'N / A'
prix = produit.select_one('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=').texte.strip() if produit.select_one('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=') d'autre 'N / A'
magasin = produit.select_one('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=').texte.strip() if produit.select_one('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=') d'autre 'N / A'
produit_url = produit.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=')['href'] if produit.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=') d'autre 'N / A'

produits.append({
'nom': nom,
'prix': prix,
'magasin': magasin,
'URL_du_produit': URL du produit
})

retourner produits purs

def gratter_plusieurs_pages(base_url, max_pages):
tous_produits = []

pour page in gamme(1, max_pages + 1):
url_paginée = f"{base_url}&page={page}"
html_content = fetch_html(url_paginée)

if contenu_html :
produits = parse_search_listings(html_content)
tous_produits.extend(produits)
d'autre:
pause

retourner tous_les_produits

def enregistrer_dans_json(données, nom de fichier='tokopedia_search_results.json'):
avec ouvert(nom de fichier, 'w') as fichier_json :
json.dump(données, fichier_json, indent=4)
impression(f"Données enregistrées dans {nom de fichier}")

# Extraction de données à partir des listes de recherche de Tokopedia
base_url = 'https://www.tokopedia.com/search?q=headset'
max_pages = 5 # Ajustez le nombre de pages que vous souhaitez récupérer
résultats_de_recherche = scrape_multiple_pages(url_de_base, pages_max)

# Enregistrer les résultats dans un fichier JSON
save_to_json(résultats_de_recherche)

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
[
{
"prénom": Casque de jeu Ipega PG-R008 pour séries P4 / X1 / N-Switch Lite / Mobile / ta,
"prix": "Rp178.000",
"magasin": "ipegaofficiel",
"URL_du_produit": "https://www.tokopedia.com/ipegaofficial/ipega-pg-r008-gaming-headset-for-p4-x1-series-n-switch-lite-mobile-ta?extParam=ivf%3Dfalse&src=topads"
},
{
"prénom": "Écouteurs mains libres stéréo Hippo Toraz - casque, blanc",
"prix": "Rp13.000",
"magasin": "HippoCentre",
"URL_du_produit": "https://www.tokopedia.com/hippocenter88/hippo-toraz-handsfree-earphone-stereo-sound-headset-putih?extParam=ivf%3Dfalse&src=topads"
},
{
"prénom": "CASQUE ORIGINAL COPOTAN VIVO OPPO XIAOMI REALMI JACK 3.5MM SUPERBASS - OPPO",
"prix": "Rp5.250",
"magasin": "BENUAACELL",
"URL_du_produit": "https://www.tokopedia.com/bcbenuacell/headset-original-copotan-vivo-oppo-xiaomi-realmi-jack-3-5mm-superbass-oppo?extParam=ivf%3Dfalse&src=topads"
},
{
"prénom": "Écouteurs Bluetooth sans fil pour jeux vidéo avec basses complètes",
"prix": "Rp225.000",
"magasin": « Kopi 7 Huruf »,
"URL_du_produit": "https://www.tokopedia.com/kopi7huruf/earphone-bluetooth-wireless-headset-gaming-full-bass?extParam=ivf%3Dfalse&src=topads"
},
{
"prénom": "Écouteurs intra-auriculaires 4D stéréo Super Bass avec micro et câble jack 3.5 mm pour casque, son cristallin - Blanc",
"prix": "15.000 188.000 RpXNUMX XNUMX Rp",
"magasin": "MAGASIN MOCUTE",
"URL_du_produit": "https://www.tokopedia.com/mocutestore/earphone-in-ear-4d-stereo-super-bass-dengan-mic-with-kabel-jack-3-5mm-headset-crystal-clear-sound-putih-97573?extParam=ivf%3Dtrue&src=topads"
},
.... plus
]

Dans la section suivante, nous aborderons le scraping de pages de produits individuelles sur Tokopedia pour obtenir des informations détaillées.

Grattage des pages de produits Tokopedia

Maintenant que nous avons extrait les listes de recherche, passons à l'extraction des détails des produits à partir des pages de produits individuelles. Dans cette section, nous allons extraire le nom du produit, le prix, le nom du magasin, la description et l'URL de l'image d'une page produit Tokopedia.

Inspection du code HTML pour les sélecteurs CSS

Avant d'écrire le scraper, nous devons inspecter la structure HTML de la page produit pour trouver les sélecteurs CSS appropriés pour les données que nous voulons récupérer. Pour cet exemple, nous allons récupérer la page produit à partir de l'URL suivante :

1
https://www.tokopedia.com/thebigboss/headset-bluetooth-tws-earphone-bluetooth-stereo-bass-tbb250-beige-8d839

Ouvrez les outils de développement dans votre navigateur et accédez à cette URL.

Une capture d'écran de la structure HTML de la page produit de Tokopedia

Voici ce sur quoi nous devons nous concentrer :

  • Produit Nom : Trouvé dans un <h1> balise avec l'attribut data-testid="lblPDPDetailProductName".
  • Prix:Le prix est situé dans un <div> balise avec l'attribut data-testid="lblPDPDetailProductPrice".
  • Nom de l'agence:Le nom du magasin est à l'intérieur d'un <a> balise avec l'attribut data-testid="llbPDPFooterShopName".
  • Description du produit*:Situé dans un <div> balise avec l'attribut data-testid="lblPDPDescriptionProduk" qui contient des informations détaillées sur le produit.
  • URL des images:L'image principale du produit se trouve dans un <button> balise avec l'attribut data-testid="PDPImageThumbnail"ainsi que, src attribut de l'imbriquée <img> balise (classe css-1c345mg) contient le lien vers l'image.

Rédaction du scraper de page produit

Maintenant que nous avons inspecté la page, nous pouvons commencer à écrire le scraper. Voici une fonction Python utilisant la Crawlbase Crawling API pour récupérer le HTML et BeautifulSoup pour analyser le contenu.

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

# Initialiser Crawlbase API avec votre jeton
crawling_api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })

def gratter_la_page_du_produit(url):
choix = {
'ajax_wait': 'vrai',
'page_wait': «5000 '
}
réponse = crawling_api.get(url, options)

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

# Extraction des données produit
données_produit = {}
données_produit['nom'] = soupe.select_one('h1[data-testid="lblPDPDetailProductName"]').texte.strip()
données_produit['prix'] = soupe.select_one('div[data-testid="lblPDPDetailProductPrice"]').texte.strip()
données_produit['nom_du_magasin'] = soupe.select_one('a[data-testid="llbPDPFooterShopName"]').texte.strip()
données_produit['la description'] = soupe.select_one('div[data-testid="lblPDPDescriptionProduk"]').texte.strip()
données_produit['images_url'] = [img['src'] pour img in soupe.select('bouton[data-testid="PDPImageThumbnail"] img.css-1c345mg')]

retourner données du produit
d'autre:
impression(f"Échec de la récupération de la page. Code d'état : {réponse['en-têtes']['pc_status']}")
retourner Aucun

Stockage des données dans un fichier JSON

Après avoir extrait les détails du produit, il est recommandé de stocker les données dans un format structuré comme JSON. Voici comment écrire les données extraites dans un fichier JSON.

1
2
3
4
def stocker_données_dans_json(données, nom de fichier='tokopedia_product_data.json'):
avec ouvert(nom de fichier, 'w') as fichier_json :
json.dump(données, fichier_json, indent=4)
impression(f"Données stockées dans {nom de fichier}")

Exemple de code complet

Voici le code complet qui récupère la page produit et stocke les données dans un fichier JSON.

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

# Initialiser Crawlbase API avec votre jeton
crawling_api = API d'exploration({ 'jeton': 'VOTRE_JETON_CRAWLBASE' })

# Fonction pour récupérer la page produit de Tokopedia
def gratter_la_page_du_produit(url):
choix = {
'ajax_wait': 'vrai',
'page_wait': «5000 '
}
réponse = crawling_api.get(url, options)

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

# Extraction des données produit
données_produit = {}
données_produit['nom'] = soupe.select_one('h1[data-testid="lblPDPDetailProductName"]').texte.strip()
données_produit['prix'] = soupe.select_one('div[data-testid="lblPDPDetailProductPrice"]').texte.strip()
données_produit['nom_du_magasin'] = soupe.select_one('a[data-testid="llbPDPFooterShopName"]').texte.strip()
données_produit['la description'] = soupe.select_one('div[data-testid="lblPDPDescriptionProduk"]').texte.strip()
données_produit['images_url'] = [img['src'] pour img in soupe.select('bouton[data-testid="PDPImageThumbnail"] img.css-1c345mg')]

retourner données du produit
d'autre:
impression(f"Échec de la récupération de la page. Code d'état : {réponse['en-têtes']['pc_status']}")
retourner Aucun

# Fonction pour stocker les données récupérées dans un fichier JSON
def stocker_données_dans_json(données, nom de fichier='tokopedia_product_data.json'):
avec ouvert(nom de fichier, 'w') as fichier_json :
json.dump(données, fichier_json, indent=4)
impression(f"Données stockées dans {nom de fichier}")

# Récupération de la page produit et sauvegarde des données
URL = " https://www.tokopedia.com/thebigboss/headset-bluetooth-tws-earphone-bluetooth-stereo-bass-tbb250-beige-8d839 "
données_produit = scrape_product_page(url)

if données_produit :
store_data_in_json(données_produit)

Exemple de sortie :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"prénom": "Casque Bluetooth TWS Ecouteur Bluetooth Stéréo Basse TBB250 - Beige",
"prix": "Rp299.000",
"nom_du_magasin": "Le Grand Chef 17",
"la description": "1.Efek suara surround Audio 6D DirectionalMenggunakan teknologi konduksi udara, suara earphone Bluetooth ini diarahkan ke telinga Anda, secara efektif mengurangi 90% kebocoran suara, sekaligus menjaga liang telinga tetap segar and menghindari rasa malu di tempat umumumumum.2.Buka desain non-in-earDesain memakai gaya anting-anting ; lembut, bahannya sangat ringan, dan berat masing-masing telinga hanya 3g, yang dapat mengurangi tekanan pada telinga; Il s'agit d'un périphérique 4,5\u75b00, qui n'a aucun lien avec le dipakai0.Bluetooth 4Chip Bluetooth pour générer de la musique et des vidéos. Koneksi stable dalam jarak 5.3 mètres, koneksi langsung dalam 10 detik setelah membuka penutup.1.Desain sentuh cerdasIni dapat dioperasikan dengan satu tangan, dan sentuhannya sensible dan nyaman; ganti lagu kapan saja, jawab panggilan, assisten panggilan, et kendalikan dengan bebas5.Panggilan peredam bising dua arahMikrofon peredam bising bawaan dapat secara efektif memfilter suara sekitar selama panggilan, mengidentifikasi suara manusia secara akurat, et membuat setiap percakapan Eta lebih jelas.6. IPx7 tahan air\ud5d\udca83Tingkat tahan air IPx7, efektif menahan keringat dan tetesan hujan kecil, jangan khawatir berkeringat atau hujan.5.Baterai tahan lama\ud8d\udd83bBaterai earphone juga dapat digunakan selama 0 jam, et waktu siaga hingga 5 jam, Memberi Anda waktu mendengarkan yang lebih lamaDaftar aksesori casque* Écouteur x 120 (kiri & kanan)* Kotak pengisian daya* Câble pengisi daya USB-C* Panduan Cepat & Garansi",
"images_url": [
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/3119dca0-2d66-45d7-b6a1-445d0782b15a.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/9d9ddcff-7f52-43cc-8271-c5e135de392b.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/d35975e6-222c-4264-b9f2-c2eacf988401.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/5aba89e3-a37a-4e3a-b1f8-429a68190817.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/c6c3bb2d-3215-4993-b908-95b309b29ddd.jpg.webp?ect=4g",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg"
]
}

Cet exemple complet montre comment extraire les détails d'un produit de la page produit de Tokopedia et les enregistrer dans un fichier JSON. Il gère le contenu dynamique, ce qui est idéal pour extraire des données à partir de pages rendues par JavaScript.

Optimisez le scraping de Tokopedia avec Crawlbase

Scraping Tokopedia peut vous aider à obtenir des données sur les produits à des fins de recherche, de comparaison de prix ou d'analyse de marché. Avec Crawlbase Crawling API, vous pouvez naviguer sur un site Web dynamique et extraire des données rapidement, même à partir de pages lourdes en JavaScript.

Dans ce blog, nous avons expliqué comment configurer l'environnement, trouver des sélecteurs CSS à partir de HTML et écrire le code Python pour extraire les listes de produits et les pages de produits de Tokopedia. Avec la méthode utilisée dans ce blog, vous pouvez facilement collecter des informations utiles telles que les noms de produits, les prix, les descriptions et les images de Tokopedia et les stocker dans un format structuré comme JSON.

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 gratter Zalando
(I.e. Comment économiser sur Costco

Contactez notre soutenez Si vous avez des questions, bon scraping.

Foire aux questions (FAQ)

L'extraction de données de Tokopedia peut être légale à condition de respecter les conditions d'utilisation et d'utiliser les données de manière responsable. Consultez toujours les règles du site Web et évitez d'extraire des données sensibles ou personnelles. Il est important d'utiliser les données à des fins éthiques, comme la recherche ou l'analyse, sans enfreindre les politiques de Tokopedia.

Q. Pourquoi devrais-je utiliser Crawlbase Crawling API pour scraper Tokopedia ?

Tokopedia utilise du contenu dynamique qui se charge via JavaScript, ce qui le rend plus difficile à récupérer à l'aide de méthodes traditionnelles. Crawlbase Crawling API facilite ce processus en rendant le site Web dans un véritable navigateur. Il contrôle également la rotation des adresses IP pour éviter les blocages, ce qui rend le scraping plus efficace et plus fiable.

Q. Quels points de données clés puis-je extraire des pages produits Tokopedia ?

Lorsque vous récupérez les pages de produits de Tokopedia, vous pouvez extraire plusieurs points de données importants, notamment le titre du produit, le prix, la description, les notes et les URL des images. Ces détails sont utiles pour l'analyse, la comparaison des prix ou la création d'une base de données de produits pour comprendre les tendances du marché.