En quoi le scraping d'eBay aidera votre boutique en ligne
eBay est le deuxième plus grand site de commerce électronique aux États-Unis, couvrant 19,7 % du marché. Avec 182 millions d'utilisateurs actifs, eBay est l'un des meilleurs sites que nous pouvons utiliser pour l'analyse des prix.
Dans cet exemple, nous ne scraperons que le prix du produit, mais eBay est une mine de données. Vous pouvez toujours scraper la section des avis, extraire des mots-clés négatifs, effectuer une analyse de sentiment et déterminer pourquoi les clients sont mécontents du produit qu’ils ont acheté.
Vous pouvez également extraire la section « Les personnes qui ont consulté cet article ont également consulté » pour découvrir ce que veulent les clients. Vous pouvez utiliser ces informations pour ajouter de nouveaux produits à votre boutique ou créer des lots à prix réduit comprenant plusieurs produits. Les clients vont les adorer !
Comment extraire des données d'eBay avec WebScrapingAPI
L'un des plus grands obstacles au web scraping est d'éviter d'être bloqué par le site web qui vous intéresse. Heureusement, vous n'avez pas à vous en soucier si vous disposez du bon outil. Dans ce cas, WebScrapingAPI est la meilleure solution pour trois raisons simples :
- Nous offrons 1 000 requêtes par mois avec la formule gratuite, sans carte bancaire requise.
- L'API dispose d'un pool de proxys de plus de 100 millions d'adresses IP tournantes, garantissant qu'aucune requête ne se chevauche.
- Vous pouvez intégrer leur API en une seule ligne de code.
Vous vous demandez peut-être pourquoi nous utilisons une API de scraping plutôt que de créer la nôtre. La raison est très simple : créer un outil de scraping à partir de zéro peut vous prendre plusieurs semaines.
Le plus gros problème n'est pas de créer l'outil en lui-même, mais de le peaufiner afin que les sites ne le signalent pas comme un bot.
Clé d'accès à l'API et authentification
Rendez-vous sur le site WebScrapingAPI et créez un compte. Vous obtiendrez une clé API et 1 000 requêtes gratuites.
Installez les dépendances
Notre projet personnel est léger et ne nécessite que deux dépendances : axios et cheerio. Axios est un client HTTP basé sur les promesses pour Node.JS. Nous utilisons cette bibliothèque pour appeler l'API WebScrapingAPI. La deuxième bibliothèque, cheerio, est une implémentation allégée de jQuery pour le serveur, et nous l'utilisons pour analyser la page produit. Utilisez cette commande pour installer les dépendances :
npm install axios cheerioLancez le projet
Créez un fichier index.js et collez-y le code suivant :
const cheerio = require('cheerio');
const axios = require('axios');
const api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const product_url = 'https://www.ebay.com/itm/174620280276?epid=4444&hash=item28a82e05d4:g:UpMAAOSwfY5gYDr6';
const api_url = `https://api.webscrapingapi.com/v1?api_key=${api_key}&url=${encodeURIComponent(product_url)}`;
const hour_in_ms = 1000 * 60 * 60;
let product_price = null;
const check_price = async () => {
// Scrape the document
// Parse the document
// Process the results
// Check for any price change in one hour
setTimeout(check_price, hour_in_ms)
}
(async () => check_price())()
Comme vous pouvez le voir, nous utilisons une fonction récursive avec un délai d'expiration pour extraire la page produit toutes les heures et vérifier s'il y a eu un changement de prix.
Extraire la ou les pages
Remplacez // Scrape the document par ce code :
let response;
try {
response = await axios.get(api_url);
} catch (error) {
console.log(error);
process.exit();
}
const $ = cheerio.load(response.data);
Ce code utilise la WebScrapingAPI pour extraire la page produit eBay et convertit les résultats en une instance cheerio.
Inspectez le code source
Nous avons extrait l'intégralité de la page produit, mais nous n'avons besoin que du prix du produit. Nous pouvons utiliser l'instance cheerio pour récupérer la valeur du prix. Le sélecteur pour le prix du produit est #mainContent [itemprop="price"].
Analysez le code HTML
Remplacer // Analysez le document avec le code suivant :
let price = $('#mainContent [itemprop="price"]').html()Traiter les résultats
Le prix se présente sous le format suivant : SYMBOLE DE LA DEVISE MONTANT. Nous devons extraire uniquement le montant. Remplacez // Traiter les résultats par ce code :
price = parseInt(price
.split(' ')[1]
.replace('$', '')
.replace(' ', '')
.split(',').join('')
.split('.')[0])
if(!product_price) {
console.log(`Initial product price:`, price)
} else {
if(product_price !== price) {
console.log('New price for product:', price)
}
}
product_price = price
Ce code nettoiera le prix en effectuant les actions suivantes :
- Supprimer la devise (US)
- Supprimer le symbole monétaire ($)
- Supprimer tous les espaces ( )
- Supprimer les virgules du nombre
- Supprimer les décimales
Une fois le prix analysé, nous enregistrons le coût initial, ou le nouveau prix s'il a changé entre les sessions de scraping.
Conclusion
Avec quelques lignes de code et un outil fantastique comme WebScrapingAPI, nous avons réussi à créer un script qui récupère le prix de n'importe quel produit sur eBay. À partir de là, tout est possible. Vous pouvez faire passer le script au niveau supérieur et mettre en œuvre les améliorations suivantes :
- Extraire le titre du produit pour faciliter le classement des prix
- Extraire plusieurs produits et comparer les prix
- Extraire les données d'un autre site eBay (comme ebay.de ou ebay.ca) et comparer le prix du même produit
- Inverser les rôles et extraire la page produit d'Amazon pour comparer les prix du même produit sur les deux sites
- Mettre en place des notifications par e-mail ; vous devriez utiliser nodemailer pour cela
- Mettez en place des notifications Slack ; vous pouvez utiliser cette bibliothèque pour accomplir cette tâche
Le plus grand avantage de cette solution appliquée à un cas d'utilisation réel est que vous pouvez faire tout cela sans dépenser ni argent ni temps précieux. En effet, WebScrapingAPI propose un essai gratuit de deux semaines qui vous permet d'utiliser toutes ses fonctionnalités gratuitement !




