Comme pour de nombreuses autres transactions, l'achat ou la vente d'un véhicule est une décision importante pour la plupart des gens. Carsandbids.com est une plateforme populaire qui vous permet d'acheter ou de vendre une voiture aux enchères. Cependant, comme la plupart des plateformes de commerce électronique, il peut être difficile de parcourir de nombreuses pages Web avant d'arriver à votre choix.

Le Web scraping est un excellent moyen de collecter des données à partir de sites Web. Lorsque vous souhaitez analyser les tendances du marché, obtenir des informations détaillées sur les véhicules ou consulter les résultats des enchères, il devient judicieux de récupérer des données à partir de sites comme Carsandbids.com.

Dans ce blog, nous vous guiderons tout au long du processus de scraping de Carsandbids.com en utilisant Crawlbase's Crawling API en Python. Vous apprendrez à configurer votre environnement, à comprendre la structure du site Web et à extraire des données efficacement.

Voici un tutoriel détaillé sur la façon de récupérer carsandbids.com :

Table des matières

  1. Pourquoi Scraper Carsandbids.com ?
  • Avantages de scraper Carsandbids.com
  • Données clés de Carsandbids.com
  1. Outils et bibliothèques nécessaires
  • Configuration de votre environnement
  • Installation des bibliothèques nécessaires
  1. Comprendre la structure de Carsandbids.com
  • Aperçu de la page de résultats de recherche
  • Aperçu de la page produit
  1. En utilisant Crawlbase Crawling API
  • Introduction à la Crawlbase Crawling API
  • Mise en place Crawlbase Crawling API
  1. Récupération de la page de résultats de recherche
  2. Récupération de la page produit
  3. Grattez efficacement Carsandbids avec Crawlbase (Dernières pensées)
  4. Foire aux questions (FAQ)

Pourquoi Scraper Carsandbids.com ?

Scraping Carsandbids.com peut nous fournir un grand volume de données sur les enchères de véhicules que nous pouvons utiliser à diverses fins. Ce site Web propose une large gamme d'enchères de voitures, chaque véhicule étant décrit en détail, y compris les spécifications, l'historique des enchères et les coordonnées du vendeur.

Avantages de la suppression de Carsandbids.com

Scraping Carsandbids.com présente plusieurs avantages pour les geeks et les professionnels des données :

  • Collecte de données complète:Informations importantes de la liste de chaque voiture telles que sa marque, son modèle, son année de fabrication, le kilométrage parcouru jusqu'à présent, son état et son prix aux enchères.
  • Informations sur le marché en temps réel:Observer les enchères en cours pour suivre les offres et surveiller les évolutions du marché.
  • Analyse de la concurrence:Enquêtez sur les résultats des enchères pour comprendre les tendances du marché et de la concurrence.
  • Recherche améliorée:Utilisez les données collectées dans des études approfondies sur la dépréciation des voitures, les préférences des acheteurs et d’autres tendances automobiles.
  • Surveillance automatisée:Gardez un œil sur les annonces de voitures particulières ainsi que sur leurs résultats aux enchères sans le faire manuellement.

Données clés de Carsandbids.com

Scraping Carsandbids.com vous permet de collecter une variété d'informations détaillées :

Données clés de carsandbids.com

1. Informations sur le véhicule :

  • Marque et modèle:Identifiez le fabricant de la voiture et le modèle spécifique.
  • Année:Déterminer l’année de fabrication de la voiture.
  • Kilométrage:Recueillez des données sur le nombre de kilomètres parcourus par la voiture.
  • État:Renseignez-vous sur l'état actuel de la voiture, y compris les défauts ou problèmes notables.
  • Spécifications:Obtenez des spécifications détaillées telles que le type de moteur, la puissance, la transmission, etc.

2. Détails de l'enchère :

  • Prix ​​de départ:Le prix initial fixé pour l'enchère.
  • Enchère actuelle:L'enchère la plus élevée à un moment donné.
  • Nombre d'offres:Suivez le nombre d'enchères placées.
  • Heure de fin de l'enchère:Sachez quand l'enchère se terminera.
  • Historique des enchères:Consultez les enchères passées pour voir le prix de vente final et l'historique des enchères.

3. Informations sur le vendeur :

  • Profil du vendeur:Informations de base sur le vendeur.
  • Évaluations et commentaires:Informations sur la réputation du vendeur en fonction des transactions précédentes.

4. Données historiques :

  • Résultats des enchères passées:Données sur les ventes précédentes, y compris les prix de vente finaux et les dates des enchères.
  • Modèles d'enchères:Analyse de la manière dont les enchères ont été placées au fil du temps lors des enchères passées.

5. Descriptions et photos :

  • Descriptions des véhicules:Descriptions détaillées fournies par les vendeurs.
  • Galerie:Images de la voiture sous différents angles pour montrer son état et ses caractéristiques.

Scraping Carsandbids.com avec Crawlbase's Crawling API rend ce processus efficace et efficient, vous permettant de collecter et d'analyser les données de manière transparente. Ensuite, nous allons parler des outils et des bibliothèques nécessaires pour récupérer Carsandbids.com.

Outils et bibliothèques nécessaires

Pour récupérer efficacement les données de Carsandbids.com, vous devrez configurer votre environnement et installer quelques bibliothèques essentielles. Voici comment procéder.

Configuration de votre environnement

  1. Installer Python: Assurez-vous que Python a été installé sur votre système. Il peut être téléchargé à partir du site officiel Python.
  2. Créer un environnement virtuel:Il est toujours judicieux de disposer d'un environnement virtuel pour gérer les dépendances de votre projet. Accédez à votre fenêtre de terminal et saisissez les commandes suivantes :
1
2
3
4
5
6
python -m venv carsandbids-scraper

# Sur macOS/Linux
source carsandbids-scraper/bin/activate
# Sous Windows
.\carsandbids-scraper\Scripts\activer
  1. Choisissez un IDE: Optez pour un IDE ou un éditeur de code dans lequel vous écrirez vos scripts. Les choix courants incluent PyCharm, Code Visual Studio, et Sublime Text.

Installation des bibliothèques nécessaires

Une fois l'installation terminée, nous devrons ensuite installer les bibliothèques nécessaires. Ouvrez votre fenêtre de terminal et exécutez la commande suivante :

1
pip installe beautifulsoup4 crawlbase

Voici un bref aperçu de ces bibliothèques :

  • bellesoupe4:Une bibliothèque pour analyser le HTML et extraire des données des pages Web.
  • base d'exploration:La bibliothèque pour interagir avec le Crawlbase produits pour scraper des sites Web.

Une fois ces packages et bibliothèques prêts, place au scraping. Dans les sections suivantes, nous explorerons la structure du site et son utilisation. Crawlbase Crawling API pour en extraire des données.

Comprendre la structure de Carsandbids.com

Pour pouvoir scraper efficacement Carsandbids.com, vous devez savoir comment ses pages Web sont structurées. Dans cette partie, nous examinerons les principaux composants de la page de résultats de recherche et de la page produit.

Présentation de la page des résultats de recherche

La page de résultats de recherche sur Carsandbids.com répertorie plusieurs enchères de voitures.

Une capture d'écran de la page de résultats de recherche de carsandbids.com

Chaque annonce comprend généralement :

  • Titre du véhicule:La marque et le modèle de la voiture.
  • Image miniature:Une petite image du véhicule.
  • Détails de l'enchère:Des informations telles que l'enchère actuelle, le temps restant et le nombre d'enchères.
  • Lien vers la page produit:Une URL qui dirige vers la page produit détaillée de chaque voiture.

La compréhension de ces éléments vous aidera à cibler des points de données spécifiques lors de l’extraction des résultats de recherche.

Présentation de la page produit

La page produit fournit des informations détaillées sur un véhicule spécifique.

Une capture d'écran de la page produit de carsandbids.com.

Les éléments clés incluent :

  • Description du véhicule:Informations détaillées sur la marque, le modèle, l'année, le kilométrage, l'état et les spécifications de la voiture.
  • Galerie d'images:Plusieurs images présentant différents aspects du véhicule.
  • Détails de l'enchère:Des informations telles que le prix de départ, l'enchère actuelle, l'historique des enchères et l'heure de fin de l'enchère.
  • Informations sur le vendeur: Détails sur le vendeur, y compris son profil et ses éventuelles notes ou commentaires.
  • Détails supplémentaires:Toute information supplémentaire fournie par le vendeur, y compris l'historique du véhicule, les dossiers d'entretien et les modifications.

En vous familiarisant avec la structure de ces pages, vous pourrez planifier efficacement votre stratégie de scraping. Dans la section suivante, nous aborderons l'utilisation de ces pages. Crawlbase's Crawling API pour extraire des données de ces pages.

En utilisant Crawlbase Crawling API

Crawlbase's Crawling API est un outil robuste qui simplifie le scraping Web. La section suivante présentera l'API et vous guidera dans sa configuration pour le scraping de Carsandbids.com.

Introduction à la Crawlbase Crawling API

Pour Crawlbase Crawling API est l'un des l' meilleurs outils d'exploration Web conçu pour gérer des scénarios de scraping Web complexes tels que les pages Web dynamiques de Carsandbids.com. Il offre un moyen simplifié d'accéder au contenu Web tout en contournant les défis courants tels que le rendu JavaScript, les CAPTCHA et les mesures anti-scraping.

Rotation IP est une caractéristique remarquable de Crawlbase Crawling APIEn faisant tourner les adresses IP, vous vous assurez que vos demandes de scraping apparaissent à partir d'endroits différents, ce qui rend plus difficile pour les sites Web de détecter et de bloquer les scrapers.

Avec Crawlbase Crawling API, vous pouvez envoyer des requêtes aux sites Web et obtenir des données structurées en retour. En l'utilisant, paramètres, vous pouvez prendre en charge le rendu JavaScript, le traitement du contenu dynamique et le renvoi du contenu HTML analysé.

Configuration Crawlbase Crawling API

  1. Inscrivez-vous et obtenez un jeton API:Tout d'abord, créez un compte sur Crawlbase et obtenez votre jeton API. Cette clé est nécessaire pour authentifier vos requêtes.

    Note: Crawlbase Il propose deux types de jetons : le jeton standard (TCP) pour les sites web statiques et le jeton JavaScript (JS) pour les sites dynamiques ou utilisant JavaScript. Carsandbids.com s'appuie fortement sur JavaScript pour charger ses pages dynamiquement ; nous opterons donc pour le jeton JavaScript. Pour un démarrage en douceur, effectuez les 1,000 XNUMX premières requêtes. Crawling API sont gratuits. Aucune carte de crédit requise.

  2. Initialiser l'API: Importer CrawlingAPI de Crawlbase Bibliothèque Python et utilisez votre jeton API pour initialiser le Crawlbase Crawling API dans votre script Python. Voici un exemple simple :

1
2
3
4
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' })
  1. Faire une demande: Créez une fonction pour faire des requêtes au Crawlbase API. Voici un exemple de fonction permettant d'extraire les résultats d'une page de recherche :
1
2
3
4
5
6
7
8
9
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

Dans les sections suivantes, nous aborderons en détail l'extraction de la page de résultats de recherche et de la page produit.

Récupération de la page de résultats de recherche

L'extraction des résultats de recherche de Carsandbids.com implique l'extraction de détails sur plusieurs annonces de voitures. Cette section vous guidera tout au long du processus, étape par étape, avec des exemples de code.

Étape 1 : Analyser la page de résultats de recherche

Avant d’écrire du code, comprenez la structure de la page de résultats de recherche.

Inspectez la page de résultats de recherche de carsandbids.com

Identifiez les éléments HTML contenant les données que vous souhaitez extraire, tels que les titres de véhicules, les miniatures, les détails des enchères et les liens vers les pages de produits.

Étape 2 : Configurez votre script Python

Créez un nouveau script Python et importez les bibliothèques nécessaires et une fonction pour effectuer une requête en utilisant Crawling API comme ci-dessous:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importer json
de base d'exploration importer API d'exploration
de bs4 importer BeautifulSoup

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

# Fonction pour faire une requête en utilisant Crawlbase API
def créer_une_requête_crawlbase(URL, options):
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 »)
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

Étape 3 : Analyser et extraire les données

Analysez le contenu HTML à l'aide de BeautifulSoup et extrayez les données pertinentes. Voici une fonction permettant d'extraire les titres, les sous-titres, l'emplacement, les vignettes et les liens vers les pages de produits des enchères de véhicules :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Fonction permettant de récupérer les résultats de la page de recherche
def gratter_la_page_des_résultats_de_la_recherche(contenu_html):
soupe = BeautifulSoup(contenu_html, 'html.parser')
car_listings = soup.find_all('li', classe_='objet de vente aux enchères')

données_extraites = []
pour inscription in listes_de_voitures :
auction_title = annonce.find('div', classe_='titre de l'enchère').texte.strip() if liste.find('div', classe_='titre de l'enchère') d'autre Aucun
auction_sub_title = annonce.find('p', classe_='enchère-sous-titre').texte.strip() if liste.find('p', classe_='enchère-sous-titre') d'autre Aucun
auction_location = listing.find('p', classe_='vente aux enchères').texte.strip() if liste.find('p', classe_='vente aux enchères') d'autre Aucun
miniature = liste.find('img')['src'] if liste.find('img') d'autre Aucun
lien_page_produit = 'https://www.carsandbids.com' + liste.find('une')['href'] if liste.find('une') d'autre Aucun

données_extraites.append({
'Titre': titre_de_l'enchère,
'sous_titre': sous-titre_de_l'enchère,
'lieu_de_vente_aux_enchères': lieu_de_vente_aux_enchères,
'vignette': vignette,
'lien_page_produit': lien vers la page produit
})
retourner données_extraites

Étape 4 : Enregistrer les données extraites

Écrivez une fonction pour enregistrer les données extraites dans un fichier JSON pour une utilisation ultérieure :

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

Étape 5 : Exécution du script

Créer un main fonction et définir l'URL de la page de résultats de recherche, le nom du fichier de sortie et définir les options pour le Crawling API demande. Appelez cette fonction pour commencer à extraire les SERP de Carsandbids.com :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Fonction principale
def principal
URL_RESULTATS_RECHERCHE = 'https://carsandbids.com/search/bmw'
FICHIER_SORTIE = 'search_results.json'
choix = {
'ajax_wait': 'vrai',
'page_wait': 10000
}

# Récupérer la page de résultats de recherche
search_results_html = make_crawlbase_request(URL_RESULTS_RECHERCHE, options)

if résultats_de_recherche_html:
# Grattez la page de résultats de recherche
données_extraites = scrape_search_results_page(search_results_html)

# Enregistrer les données extraites dans un fichier JSON
save_data_as_json(données_extraites, FICHIER_DE_SORTIE)
d'autre:
impression(« Aucune donnée à analyser. »)

if __nom__ == '__principale__':
principale()

Scénario complet

Voici le script complet pour extraire la page de résultats de recherche de Carsandbids.com :

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

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

# Fonction pour faire une requête en utilisant Crawlbase API
def créer_une_requête_crawlbase(URL, options):
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 »)
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

# Fonction permettant de récupérer les résultats de la page de recherche
def gratter_la_page_des_résultats_de_la_recherche(contenu_html):
soupe = BeautifulSoup(contenu_html, 'html.parser')
car_listings = soup.find_all('li', classe_='objet de vente aux enchères')

données_extraites = []
pour inscription in listes_de_voitures :
auction_title = annonce.find('div', classe_='titre de l'enchère').texte.strip() if liste.find('div', classe_='titre de l'enchère') d'autre Aucun
auction_sub_title = annonce.find('p', classe_='enchère-sous-titre').texte.strip() if liste.find('p', classe_='enchère-sous-titre') d'autre Aucun
auction_location = listing.find('p', classe_='vente aux enchères').texte.strip() if liste.find('p', classe_='vente aux enchères') d'autre Aucun
miniature = liste.find('img')['src'] if liste.find('img') d'autre Aucun
lien_page_produit = 'https://www.carsandbids.com' + liste.find('une')['href'] if liste.find('une') d'autre Aucun

données_extraites.append({
'Titre': titre_de_l'enchère,
'sous_titre': sous-titre_de_l'enchère,
'lieu_de_vente_aux_enchères': lieu_de_vente_aux_enchères,
'vignette': vignette,
'lien_page_produit': lien vers la page produit
})
retourner données_extraites

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

# Fonction principale
def principal
URL_RESULTATS_RECHERCHE = 'https://carsandbids.com/search/bmw'
FICHIER_SORTIE = 'search_results.json'
choix = {
'ajax_wait': 'vrai',
'page_wait': 10000
}

# Récupérer la page de résultats de recherche
search_results_html = make_crawlbase_request(URL_RESULTS_RECHERCHE, options)

if résultats_de_recherche_html:
# Grattez la page de résultats de recherche
données_extraites = scrape_search_results_page(search_results_html)

# Enregistrer les données extraites dans un fichier JSON
save_data_as_json(données_extraites, FICHIER_DE_SORTIE)
d'autre:
impression(« Aucune donnée à analyser. »)

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
[
{
« Titre »: « BMW 2014i Berline 335 »,
"sous_titre": "Pas de réserve Turbo 6 cylindres, pack M Sport, propriété californienne, quelques modifications",
"lieu_de_vente_aux_encheres": « Los Angeles, Californie 90068 »,
"vignette": "https://media.carsandbids.com/cdn-cgi/image/width=768,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-SRn59u8Hl5-(edit).jpg?t=171849884215",
"lien_page_produit": "https://www.carsandbids.com/auctions/9QxJ8nV7/2014-bmw-335i-sedan"
},
{
« Titre »: « BMW 2009i Sports Wagon Watch 328 »,
"sous_titre": « Moteur 3.0 cylindres de 6 litres inspecté sans réserve, ensemble Premium, propriété californienne »,
"lieu_de_vente_aux_encheres": « San Diego, Californie 92120 »,
"vignette": "https://media.carsandbids.com/cdn-cgi/image/width=768,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/3g6kOmG9-2vaWrBd1Zk-(edit).jpg?t=171863907176",
"lien_page_produit": "https://www.carsandbids.com/auctions/30n7Yqaj/2009-bmw-328i-sports-wagon"
},
{
« Titre »: « BMW M2011 Sedan Competition Package 3Regardez »,
"sous_titre": « Pas de réserve de puissance V8, coussinets de bielle remplacés, très bien équipé, échappement M Performance »,
"lieu_de_vente_aux_encheres": « Wilmette, IL 60091 »,
"vignette": "https://media.carsandbids.com/cdn-cgi/image/width=768,quality=70/c7387fa5557775cb743f87fc02d6cb831afb20b2/photos/3Bp4zzbX-hgZKuFy-Ka-(edit).jpg?t=171869247233",
"lien_page_produit": "https://www.carsandbids.com/auctions/9lBB4mxM/2011-bmw-m3-sedan-competition-package"
},
{
« Titre »: « BMW 2001iWatch 740 »,
"sous_titre": « Puissance V8 sans réserve, pack M Sport, bleu Orient métallisé »,
"lieu_de_vente_aux_encheres": « Penfield, NY 14526 »,
"vignette": "https://media.carsandbids.com/cdn-cgi/image/width=768,quality=70/4822e9034b0b6b357b3f73fabdfc10e586c36f68/photos/9XY2zVwq-wu-H4HvpOL-(edit).jpg?t=171881586626",
"lien_page_produit": "https://www.carsandbids.com/auctions/9eDymNqk/2001-bmw-740i"
},
.... plus
]

Dans la section suivante, nous verrons en détail comment récupérer les pages produits.

Récupération de la page produit

L'extraction de la page produit de Carsandbids.com implique l'extraction d'informations détaillées sur les annonces de voitures individuelles. Cette section vous guidera tout au long du processus, avec des exemples de code.

Étape 1 : Analyser la page produit

Avant d’écrire du code, examinez la structure d’une page produit.

Inspectez la page produit de carsandbids.com.

Identifiez les éléments HTML contenant les données que vous souhaitez extraire, telles que les descriptions de véhicules, les galeries d'images, les détails des enchères et les informations sur le vendeur.

Étape 2 : Configurez votre script Python

Créez un nouveau script Python ou ajoutez-le à votre script existant et importez les bibliothèques nécessaires et une fonction pour effectuer une requête à l'aide de Crawling API comme ci-dessous:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importer json
de base d'exploration importer API d'exploration
de bs4 importer BeautifulSoup

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

# Fonction pour faire une requête en utilisant Crawlbase API
def créer_une_requête_crawlbase(URL, options):
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 »)
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

Étape 3 : Analyser et extraire les données

Analysez le contenu HTML à l'aide de BeautifulSoup et extrayez les données pertinentes. Voici une fonction permettant d'extraire les descriptions de véhicules, les galeries d'images et les détails des enchères :

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
# Fonction pour récupérer la page produit
def gratter_la_page_du_produit(URL, options):
produit_page_html = make_crawlbase_request(url, options)
if page_produit_html:
soupe = BeautifulSoup(page_produit_html, 'html.parser')

titre_prix_étiquette = soup.select_one('div.auction-title > h1')

description_du_vehicule = {}
faits_rapides = soup.find('div', classe_=« Faits en bref »)

if faits en bref:
pour dl in faits_rapides.trouver_tout('dl'):
pour dt, dd in Zip *: français(dl.find_all('dt'), dl.find_all('dd')):
clé = dt.text.strip()
valeur = dd.text.strip() if dd d'autre Aucun
description_du_vehicule[clé] = valeur

galerie_d'images = {
"images_intérieures": [img['src'] pour img in soupe.select('div[class*="gall-int"] > img')],
"images_extérieures": [img['src'] pour img in soupe.select('div[class*="gall-ext"] > img')]
}

current_bid_tag ​​= soupe.select_one('div.offre-courante > div.offre-valeur')
historique_des_offres = [bid.texte.strip() pour offre in soupe.select('.commentaires dl.placed-bid')]

lien_info_du_vendeur = soup.select_one('ul.stats li.seller div.nom d'utilisateur a')
info_vendeur = {
'Nom d'utilisateur': lien d'information du vendeur['Titre'] if lien_informations_du_vendeur d'autre Aucun,
'profils': 'https://carsandbids.com' + lien d'information du vendeur['href'] if lien_informations_du_vendeur d'autre Aucun,
}

données_produit = {
'titre_de_l'enchère': titre_étiquette_de_prix.texte.strip() if titre_prix_étiquette d'autre Aucun,
'description_du_véhicule': description_du_véhicule,
'galerie_d'images': galerie_d'images,
'offre_actuelle': current_bid_tag.texte.strip() if balise_offre_actuelle d'autre Aucun,
'historique_des_offres': historique_des_offres,
'informations_du_vendeur': info_vendeur
}

retourner données du produit
d'autre:
impression(« Aucune donnée à analyser. »)

Étape 4 : Enregistrer les données extraites

Écrivez une fonction pour enregistrer les données extraites dans un fichier JSON pour une utilisation ultérieure :

1
2
3
4
5
6
// Fonction pour sauvegarder les données json
def enregistrer_les_données_au_format_json(json, fichier_de_sortie):
avec ouvert(fichier_de_sortie, 'w') as fichier:
json.dump(json, fichier, indent=2)

impression(f"Données enregistrées dans {fichier_de_sortie}")

Étape 5 : Exécution du script

Créer un main fonction où vous définirez l'URL d'une page produit, définirez les options pour le Crawlbase Crawling API demande, nom du fichier de sortie et combinaison des fonctions de scraping et d'enregistrement. Exécutez le main fonction permettant de récupérer les données de la page produit de Carsandbids.com :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Fonction principale pour exécuter le script
def principal
URL_PAGE_PRODUIT = 'https://carsandbids.com/auctions/9QxJ8nV7/2014-bmw-335i-sedan'
FICHIER_SORTIE = 'données_produit.json'
choix = {
'ajax_wait': 'vrai',
'page_wait': 10000
}

scraped_data = scrape_product_page(URL_PAGE_PRODUIT, options)
save_data_as_json(données récupérées, FICHIER_DE_SORTIE)

if __nom__ == '__principale__':
principale()

Scénario complet

Voici le script complet pour récupérer la page produit de Carsandbids.com :

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

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

# Fonction pour faire une requête en utilisant Crawlbase API
def créer_une_requête_crawlbase(URL, options):
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 »)
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

# Fonction pour récupérer la page produit
def gratter_la_page_du_produit(URL, options):
produit_page_html = make_crawlbase_request(url, options)
if page_produit_html:
soupe = BeautifulSoup(page_produit_html, 'html.parser')

titre_prix_étiquette = soup.select_one('div.auction-title > h1')

description_du_vehicule = {}
faits_rapides = soup.find('div', classe_=« Faits en bref »)

if faits en bref:
pour dl in faits_rapides.trouver_tout('dl'):
pour dt, dd in Zip *: français(dl.find_all('dt'), dl.find_all('dd')):
clé = dt.text.strip()
valeur = dd.text.strip() if dd d'autre Aucun
description_du_vehicule[clé] = valeur

galerie_d'images = {
"images_intérieures": [img['src'] pour img in soupe.select('div[class*="gall-int"] > img')],
"images_extérieures": [img['src'] pour img in soupe.select('div[class*="gall-ext"] > img')]
}

current_bid_tag ​​= soupe.select_one('div.offre-courante > div.offre-valeur')
historique_des_offres = [bid.texte.strip() pour offre in soupe.select('.commentaires dl.placed-bid')]

lien_info_du_vendeur = soup.select_one('ul.stats li.seller div.nom d'utilisateur a')
info_vendeur = {
'Nom d'utilisateur': lien d'information du vendeur['Titre'] if lien_informations_du_vendeur d'autre Aucun,
'profils': 'https://carsandbids.com' + lien d'information du vendeur['href'] if lien_informations_du_vendeur d'autre Aucun,
}

données_produit = {
'titre_de_l'enchère': titre_étiquette_de_prix.texte.strip() if titre_prix_étiquette d'autre Aucun,
'description_du_véhicule': description_du_véhicule,
'galerie_d'images': galerie_d'images,
'offre_actuelle': current_bid_tag.texte.strip() if balise_offre_actuelle d'autre Aucun,
'historique_des_offres': historique_des_offres,
'informations_du_vendeur': info_vendeur
}

retourner données du produit
d'autre:
impression(« Aucune donnée à analyser. »)

def enregistrer_les_données_au_format_json(données, fichier_de_sortie):
avec ouvert(fichier_de_sortie, 'w') as fichier:
json.dump(données, fichier, indent=2)

impression(f"Données enregistrées dans {fichier_de_sortie}")

# Fonction principale pour exécuter le script
def principal
URL_PAGE_PRODUIT = 'https://carsandbids.com/auctions/9QxJ8nV7/2014-bmw-335i-sedan'
FICHIER_SORTIE = 'données_produit.json'
choix = {
'ajax_wait': 'vrai',
'page_wait': 10000
}

scraped_data = scrape_product_page(URL_PAGE_PRODUIT, options)
save_data_as_json(données récupérées, FICHIER_DE_SORTIE)

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
{
"titre_de_l'enchère": « BMW 2014i Berline 335 »,
"description_du_vehicule": {
"Faire": "BMW",
"Modèle": « Série 3Enregistrer »,
"Kilométrage": "84,100",
"VIN": « WBA3A9G52ENS65011 »,
« Statut du titre »: "Propre (CA)",
"Emplacement": « Los Angeles, Californie 90068 »,
"Vendeur": "Miko_TContact",
"Moteur": « Moteur 3.0 L turbocompressé I6 »,
« Transmission »: « Propulsion arrière »,
"Transmission": « Automatique (8 vitesses) »,
« Style de corps »: "Sedan",
"Couleur extérieure": « Gris minéral métallisé »,
"Couleur intérieure": "Rouge corail",
"Type de vendeur": "Soirée privée"
},
"galerie_d'images": {
"images_intérieures": [
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-IWpiLVYg8b-(edit).jpg?t=171849901125",
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/c1f0085c8fc8474dacc9711b49a8a8e8a1e02ed4/photos/rkVPlNqQ-56nXtS7MymS.jpg?t=171813663392",
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/c1f0085c8fc8474dacc9711b49a8a8e8a1e02ed4/photos/rkVPlNqQ-p1ZA2VO1lXd.jpg?t=171813664799"
],
"images_extérieures": [
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-cpo8coEnKk-(edit).jpg?t=171849888829",
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-YF2_STjmrZ-(edit).jpg?t=171849886705",
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-VQMbPK9FCO-(edit).jpg?t=171849894077",
"https://media.carsandbids.com/cdn-cgi/image/width=542,quality=70/9004500a220bf3a3d455d15ee052cf8c332606f8/photos/rkVPlNqQ-iqru8ZckuN-(edit).jpg?t=171849896490"
]
},
"enchère_actuelle": «$ 9,500»,
« historique_des_offres »: [
« Offre de 9,500 XNUMX $ »,
« Offre de 9,201 XNUMX $ »,
« Offre de 9,100 XNUMX $ »,
« Offre de 9,000 XNUMX $ »,
« Offre de 8,900 XNUMX $ »,
« Offre de 8,800 XNUMX $ »,
« Offre de 8,600 XNUMX $ »,
« Offre de 8,500 XNUMX $ »,
« Offre de 8,100 XNUMX $ »,
« Offre de 7,950 XNUMX $ »,
« Offre de 7,850 XNUMX $ »
],
"informations_du_vendeur": {
"Nom d'utilisateur": "Miko_T",
"profil": "https://carsandbids.com/user/Miko_T"
}
}

Grattez efficacement Carsandbids avec Crawlbase

L'analyse de Carsandbids.com peut révéler des observations intéressantes sur le marché automobile, offrant des informations plus détaillées sur les listes de véhicules, les enchères et les données des vendeurs. Crawlbase Crawling API facilite et rend efficace l'extraction d'informations importantes à partir du site Carsandbids. Suivez les étapes décrites dans ce blog afin d'extraire avec succès à la fois les résultats de recherche et les pages de produits du site Carsandbids.

Si vous cherchez à étendre vos capacités de scraping Web, pensez à explorer nos guides suivants sur le scraping d'autres sites Web importants.

(I.e. Comment récupérer des fonds de Google Finance
(I.e. Comment récupérer des informations sur Google News
(I.e. Comment récupérer les résultats de Google Scholar
(I.e. Comment récupérer les résultats de recherche Google
(I.e. Comment récupérer des données Google Maps
(I.e. Comment récupérer des fonds de Yahoo Finance
(I.e. Comment gratter Zillow

Si vous avez des questions ou des commentaires, notre équipe de soutien est toujours disponible pour vous aider dans votre parcours de scraping Web. Bon scraping !

Foire aux questions (FAQ)

Il est possible que le scraping de Carsandbids.com soit légal à condition que vous respectiez leurs conditions de service et utilisiez les données de manière responsable. Méfiez-vous des actions qui violeraient ces conditions, telles que le plantage de leurs serveurs ou l'utilisation malveillante des données. Assurez-vous toujours que vos activités de scraping sont éthiques et restent dans les limites légales pour éviter tout problème futur.

Q. Quels sont les défis liés au scraping de Carsandbids.com ?

Le scraping de Carsandbids.com présente plusieurs difficultés. Le site Carsandbids.com a un contenu dynamique qui le rend difficile à scraper, et il peut y avoir des limites de débit imposées par un site sur le nombre de requêtes pouvant être effectuées dans une période donnée. De plus, les systèmes CAPTCHA peuvent bloquer les tentatives de scraping automatisées. Pour surmonter efficacement ces obstacles, utilisez une API fiable comme Crawlbase Crawling API qui gère les contenus dynamiques ainsi que les limitations de débit et contourne la protection CAPTCHA.

Q. Comment puis-je utiliser efficacement les données extraites de Carsandbids.com ?

Les informations obtenues sur le site Web de Carsandbids peuvent être très utiles à diverses fins. Vous pouvez les utiliser pour analyser les tendances du marché, surveiller les prix des véhicules et à des fins de recherche concurrentielle, entre autres. Ces données peuvent aider à prendre des décisions éclairées, que vous soyez un concessionnaire automobile qui souhaite fixer le prix de son véhicule de manière compétitive ou un analyste qui étudie la dynamique du marché. Assurez-vous de gérer les données en toute sécurité et de les utiliser pour obtenir des informations exploitables qui orientent vos stratégies et vos décisions commerciales.