Le web scraping est l'art d'extraire des données de l'internet. En ce qui concerne ses applications, il en existe un grand nombre. L'une d'entre elles est la comparaison des prix de différents sites Web. Les achats en ligne sont en plein essor dans le secteur et la comparaison des prix de certains produits est devenue une nécessité. Nous visitons tous plusieurs sites Web lorsque nous avons besoin d'acheter un produit particulier, mais avez-vous déjà pensé à créer un outil de comparaison des prix qui fasse le même travail pour vous et vous propose la meilleure offre ?
Dans cet article, nous allons créer un outil de comparaison de prix en Python qui vous permettra de suivre le prix des produits à travers différentes sources et vous informera sur les performances des différents concurrents sur le marché. En outre, il informera également l'entreprise si le prix d'un produit spécifique augmente ou diminue par rapport au prix prévu.
La source de données que nous utiliserons pour cet article sera un fichier JSON, et nous comparerons les prix des produits que nous obtenons d'Amazon, eBay et Walmart. Notre échantillon de données ressemble à ce qui suit,
N'hésitez pas à passer d'une section à l'autre pour en savoir plus sur le scraping web pour la comparaison de prix en python !
[
{
"last_visited": "2018-01-30T13:38:01",
"name": "PUMA Men's Evospeed 17.4 TT Soccer Shoe",
"amazon_price": 36.94,
"ebay_price": 37,
"walmart_price": 37,
"amazon_url": "https://www.amazon.com/PUMA-Evospeed-Soccer-Ultra-Yellow-Peacoat-Orange/dp/B01J5LEMZI/",
"ebay_url": "https://www.ebay.com/itm/PUMA-Mens-Evospeed-17-4-Tt-Soccer-Shoe/302471489090",
"walmart_url": "https://www.walmart.com/ip/PUMA-Men-s-Evospeed-17-4-Tt-Soccer-Shoe/587074448",
"description": "The new evospeed 17.4 is a performance football boot for players of all levels. The soft and lightweight synthetic leather on the upper keeps the boot lightweight, comfortable and ensures durability. The lightweight outsole offers the perfect balance between traction, stability and acceleration PUMA is the global athletic brand that successfully fuses influences from sport, lifestyle and fashion. PUMA's unique industry perspective delivers the unexpected in sport-lifestyle footwear, apparel and accessories, through technical innovation and revolutionary design.",
"brand": "PUMA",
"image": "https://images-na.ssl-images-amazon.com/images/I/61v1mylcAqL._UL1500_.jpg"
},
{
"last_visited": "2018-01-30T13:38:07",
"name": "L'Oreal Paris Skin Care Revitalift Cicacream Face Moisturizer",
"amazon_price": 13.97,
"ebay_price": 13.99,
"walmart_price": 13.97,
"amazon_url": "https://www.amazon.com/LOreal-Paris-Revitalift-Cicacream-Moisturizer/dp/B074MBDRHW",
"ebay_url": "https://www.ebay.com/itm/LOREAL-Paris-NEW-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair-ORIGINAL/112715734801",
"walmart_url": "https://www.walmart.com/ip/L-Or-al-Paris-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair/519350834",
"description": "Skin's moisture barrier weakens with age, resulting in greater moisture loss, more prominent wrinkles and loss of firmness. Lightweight, protective cream is formulated with Pro-Retinol, a powerful wrinkle-fighting ingredient and Centella Asiatica, an herb used in traditional Chinese medicine. Strengthens and repairs skin barrier to help resist visible lines, loss of firmness and other signs of aging that a weakened skin barrier can accentuate. See visible results immediately: skin feels healthier, softer, smoother and more supple. Skin feels noticeably more hydrated. Skin barrier is stronger, helping to resist signs of aging. In two weeks: fine lines appear visibly reduced. Firmness and elasticity look noticeably improved. In four weeks: wrinkles appear less visible. Clarity and tone improves, skin exudes luminosity. Skin continues to look and feel soft, smooth, healthy.",
"brand": "L'Oreal Paris",
"image": "https://images-na.ssl-images-amazon.com/images/I/71Ff2vn4vjL._SL1500_.jpg"
},
{
"last_visited": "2018-01-30T13:38:12",
"name": "Adidas Dynamic Pulse By Adidas For Men",
"amazon_price": 6.96,
"ebay_price": 18.99,
"walmart_price": 7,
"amazon_url": "https://www.amazon.com/Adidas-Dynamic-Toilette-3-4-Ounce-Bottle/dp/B000VON5F2/",
"ebay_url": "https://www.ebay.com/itm/Adidas-DYNAMIC-PULSE-Cologne-for-Men-3-4-oz-edt-3-3-Spray-New-in-BOX/252837623533",
"walmart_url": "https://www.walmart.com/ip/Adidas-Dynamic-Pulse-for-Men-3-4-oz-EDT/28664356",
"description": "Launched by the design house of Adidas in 1997, ADIDAS DYNAMIC PULSE is a men's fragrance that possesses a blend of A fresh scent of citrus, cedar and mint with low tones of sweet fruits, fragrant woods and tonka bean. It is recommended for daytime wear.When applying any fragrance please consider that there are several factors which can affect the natural smell of your skin and, in turn, the way a scent smells on you. For instance, your mood, stress level, age, body chemistry, diet, and current medications may all alter the scents you wear. Similarly, factor such as dry or oily skin can even affect the amount of time a fragrance will last after being applied",
"brand": "adidas",
"image": "https://images-na.ssl-images-amazon.com/images/I/41%2BAnOP5nbL.jpg"
},
{
"last_visited": "2018-01-30T13:38:19",
"name": "Canon EOS Rebel T6 Digital SLR Camera",
"amazon_price": 449,
"ebay_price": 449,
"walmart_price": 449,
"amazon_url": "https://www.amazon.com/Canon-Digital-Camera-18-55mm-3-5-5-6/dp/B01CO2JPYS",
"ebay_url": "https://www.ebay.com/itm/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens/232596041502",
"walmart_url": "https://www.walmart.com/ip/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens-Black/50820749",
"description": "",
"brand": "Canon",
"image": "https://images-na.ssl-images-amazon.com/images/I/81YszfZS8%2BL._SL1500_.jpg"
},
{
"last_visited": "2018-01-30T13:38:25",
"name": "Woodland Fox Critter 36' Mylar Balloon",
"amazon_price": 5.49,
"ebay_price": 6.49,
"walmart_price": 7.6,
"amazon_url": "https://www.amazon.com/Woodland-Fox-Critter-Mylar-Balloon/dp/B00S9TKVYO",
"ebay_url": "https://www.ebay.com/itm/Woodland-Critters-Fox-36-inch-Foil-Balloon/132058119680",
"walmart_url": "https://www.walmart.com/ip/Woodland-Fox-Foil-Balloon/43350002",
"description": "Celebrate any occasion with an adorable woodland fox critter balloon! 36\" Woodland Critters fox shape foil balloon.",
"brand": "Betallic",
"image": "https://images-na.ssl-images-amazon.com/images/I/71Z9bG-BzuL._SL1500_.jpg"
}
]
Certains des champs importants pour le script que nous écrivons sont amazon_price, ebay_price et walmart_price.
Maintenant, nous avons vu nos données. Passons donc à la phase de développement.
Nous réaliserons l'outil en Python 3.x, et tout d'abord, nous utiliserons la bibliothèque JSON pour l'analyse du JSON et le traitement ultérieur. L'outil offre une fonctionnalité étonnante en imprimant le nom du produit et le prix du site. Nous importons la bibliothèque JSON pour analyser le JSON.
import json
Nous allons maintenant appeler la fonction open() dans l'extrait de code pour lire le contenu du fichier JSON,
import json
si __name__ == '__main__' :
données_de_prix = None
prix = []
avec open('data.json', encoding='utf8') as f :
prix_données = f.read()
si price_data n'est pas None :
json_price_data = json.loads(price_data)
Maintenant que nos données JSON sont lues, nous allons les convertir dans les structures de données intégrées de Python. Pour cela, le code appellera la méthode json.loads() pour convertir la chaîne JSON en un dictionnaire ou une liste de dictionnaires, selon les entrées.
Puisque le but principal est de trouver le magasin qui vend le produit au prix le plus bas, notre objectif est de trouver le prix minimum et d'autres détails pertinents comme le nom du produit et du magasin. Les informations sur les prix des magasins concernés sont stockées dans les clés amazon_price, ebay_price et Walmart_price. Pour trouver le prix minimum de chaque produit, nous devons itérer les éléments de la liste de prix.
for d in json_price_data:
price.append({'name': d['name'], 'price': float(d['amazon_price']), 'url': d['amazon_url']})
price.append({'name': d['name'], 'price': float(d['walmart_price']), 'url': d['walmart_url']})
price.append({'name': d['name'], 'price': float(d['ebay_price']), 'url': d['ebay_url']})
minPricedItem = min(price, key=lambda x: x['price'])
print(minPricedItem)
print('=================')
price = []
Nous utilisons des lambdas et définissons la clé de min() pour nous assurer que le champ de prix est comparé. Le résultat est le suivant :
Restructurons un peu le format.
for d in json_price_data:
price.append({'name': d['name'], 'price': d['amazon_price'], 'url': d['amazon_url']})
price.append({'name': d['name'], 'price': d['walmart_price'], 'url': d['walmart_url']})
price.append({'name': d['name'], 'price': d['ebay_price'], 'url': d['ebay_url']})
minPricedItem = min(price, key=lambda x: float(x['price']))
store_name = ''
# Pick the store name based on url
if 'amazon' in minPricedItem['url'].lower():
store_name = 'Amazon'
elif 'walmart' in minPricedItem['url'].lower():
store_name = 'Amazon'
elif 'ebay' in minPricedItem['url'].lower():
store_name = 'eBay'
print('{} is available in cheap price at {}. The price is ${}'.format(minPricedItem['name'], store_name,
minPricedItem['price']))
price = []
Il donnera le résultat suivant :
Félicitations ! Nous avons réussi à créer le script que vous pouvez exécuter périodiquement pour obtenir les prix actualisés du produit.
ProxyScrape est l'un des fournisseurs de proxy les plus populaires et les plus fiables en ligne. Les trois services de proxy comprennent des serveurs proxy dédiés aux centres de données, des serveurs proxy résidentiels et des serveurs proxy premium. Alors, quelle est la meilleure solution possible pour le meilleur proxy HTTP pour le web scraping pour la comparaison des prix en utilisant python? Avant de répondre à cette question, il est préférable de voir les caractéristiques de chaque serveur proxy.
Un proxy de centre de données dédié est le mieux adapté aux tâches en ligne à grande vitesse, telles que la transmission de grandes quantités de données (en termes de taille) à partir de divers serveurs à des fins d'analyse. C'est l'une des principales raisons pour lesquelles les organisations choisissent le site proxys dédié pour transmettre de grandes quantités de données dans un court laps de temps.
Un proxy de centre de données dédié possède plusieurs caractéristiques, telles qu'une bande passante et des connexions simultanées illimitées, un site HTTP dédié proxys pour faciliter la communication, et une authentification IP pour plus de sécurité. Avec un temps de fonctionnement de 99,9 %, vous pouvez être assuré que le centre de données dédié fonctionnera toujours, quelle que soit la session. Enfin, ProxyScrape offre un excellent service clientèle et vous aidera à résoudre votre problème dans les 24-48 heures ouvrables.
Le suivant est un proxy résidentiel. Le proxy résidentiel est le proxy de référence pour tout consommateur général. La raison principale est que l'adresse IP d'un proxy résidentiel ressemble à l'adresse IP fournie par le FAI. Cela signifie qu'obtenir la permission du serveur cible pour accéder à ses données sera plus facile que d'habitude.
L'autre caractéristique du proxy résidentiel de ProxyScrapeest une fonction de rotation. Un proxy rotatif vous permet d'éviter une interdiction permanente de votre compte car votre proxy résidentiel change dynamiquement votre adresse IP, ce qui rend difficile pour le serveur cible de vérifier si vous utilisez un proxy ou non.
En dehors de cela, les autres caractéristiques d'un proxy résidentiel sont : une bande passante illimitée, ainsi qu'une connexion simultanée, un HTTP/s dédié proxys, proxys à tout moment de la session en raison de plus de 7 millions de proxys dans le pool de proxy, l'authentification par nom d'utilisateur et mot de passe pour plus de sécurité, et enfin, la possibilité de changer le serveur du pays. Vous pouvez sélectionner le serveur de votre choix en ajoutant le code du pays à l'authentification du nom d'utilisateur.
Le dernier est le proxy premium. Premium proxys est identique au centre de données dédié proxys. La fonctionnalité reste la même. La principale différence est l'accessibilité. Dans le cas de Premium proxys, la liste des serveurs mandataires (la liste qui contient proxys) est mise à la disposition de chaque utilisateur du réseau de ProxyScrape. C'est pourquoi premium proxys coûte moins cher que le centre de données dédié proxys.
Alors, quelle est la meilleure solution possible pour le meilleur proxy HTTP pour le scraping web pour la comparaison des prix en utilisant python? La réponse serait "proxy résidentiel." La raison en est simple. Comme nous l'avons dit plus haut, le proxy résidentiel est un proxy rotatif, ce qui signifie que votre adresse IP sera modifiée dynamiquement au cours d'une période donnée, ce qui peut être utile pour tromper le serveur en envoyant un grand nombre de requêtes dans un court laps de temps sans obtenir un blocage d'IP.
Ensuite, la meilleure chose à faire est de changer le serveur proxy en fonction du pays. Il suffit d'ajouter le code ISO_CODE du pays à la fin de l'authentification IP ou de l'authentification par nom d'utilisateur et mot de passe.
Lectures suggérées :
Le grattage des prix, comme son nom l'indique, est le processus d'extraction du prix d'un produit ou d'un service en ligne pour effectuer une analyse, comme celle de la concurrence, afin d'améliorer la stratégie marketing. L'automatisation du processus de grattage peut vous aider à réduire le temps et les ressources, et vous pouvez le faire avec l'aide de Python.
Le meilleur proxy pour effectuer du web scraping pour la comparaison de prix est un "proxy résidentiel". La raison en est que le proxy résidentiel est un proxy rotatif, ce qui signifie que votre adresse IP sera dynamiquement modifiée au cours d'une période donnée, ce qui peut être utile pour tromper le serveur en envoyant un grand nombre de requêtes dans un court laps de temps sans obtenir un blocage d'IP.
La réponse est oui. Vous pouvez extraire le prix d'un site de commerce électronique puisque toutes les informations sont mises à la disposition du public, ce qui signifie que toutes les données publiques peuvent être extraites.
Cet article a exploré une autre merveille du web scraping, à savoir la "comparaison des prix". En plus de cela, nous avons construit un outil qui peut faire le travail de comparaison de prix pour vous et vous tenir au courant des tendances du marché. Cet article espère donner suffisamment d'informations sur le web scraping pour la comparaison des prix de manière simple. Un serveur proxy est le meilleur compagnon pour le web scraping. ProxyScrape fournit le meilleur proxy résidentiel de sa catégorie pour vos projets de web scraping pour la comparaison des prix. Vous pouvez vérifier le meilleur proxy résidentiel ici.