Web Scraping für Preisvergleiche im Jahr 2024 - Einfache Schritte

Python, Scraping, Mar-06-20245 Min. gelesen

Web Scraping ist die Kunst, Daten aus dem Internet zu extrahieren. Es gibt eine Vielzahl von Anwendungen dafür. Eine davon ist der Preisvergleich auf verschiedenen Websites. Online-Shopping boomt in der Branche, und der Vergleich der Preise bestimmter Produkte ist zu einer Notwendigkeit geworden. Wir

Web Scraping ist die Kunst, Daten aus dem Internet zu extrahieren. Es gibt eine Vielzahl von Anwendungen dafür. Eine davon ist der Preisvergleich auf verschiedenen Websites. Online-Shopping hat in der Branche inzwischen Hochkonjunktur, und der Vergleich der Preise bestimmter Produkte ist zu einer Notwendigkeit geworden. Wir alle besuchen mehrere Websites, wenn wir ein bestimmtes Produkt kaufen wollen, aber haben Sie schon einmal daran gedacht, ein Preisvergleichs-Tool zu entwickeln, das dieselbe Aufgabe für Sie übernimmt und Ihnen das beste Angebot vorschlägt?  

In diesem Artikel werden wir eine erstaunliche Web-Scraping für Preisvergleichs-Tool in Python, dass Sie den Preis der Produkte über verschiedene Quellen zu verfolgen und informieren Sie über die Leistung der verschiedenen Wettbewerber auf dem Markt wird. Darüber hinaus wird es auch das Unternehmen informieren, ob der Preis eines bestimmten Produkts geht nach oben oder unten den vorhergesagten Preis.

Die Datenquelle, die wir für diesen Artikel verwenden werden, ist eine JSON-Datei, und wir werden die Produktpreise vergleichen, die wir von Amazon, eBay und Walmart erhalten. Unsere Beispieldaten sehen wie folgt aus,

Springen Sie einfach zu einem beliebigen Abschnitt, um mehr über Web Scraping für Preisvergleiche in Python zu erfahren!

Inhaltsübersicht

Schritte beim Web Scraping für den Preisvergleich:

[
  {
    "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"
  }
]

Einige der wichtigen Felder, die für das Skript, das wir schreiben, relevant sind, sind amazon_price, ebay_price und walmart_price.

Jetzt haben wir unsere Daten gesehen. Kommen wir also in die Entwicklungsphase.

Wir werden das Tool in Python 3.x erstellen und zunächst die JSON-Bibliothek für das Parsen von JSON und die weitere Verarbeitung verwenden. Das Tool bietet erstaunliche Funktionen, indem es den Produktnamen und den Preis der Website ausgibt. Wir importieren die JSON-Bibliothek zum Parsen von JSON.

json importieren

Nun rufen wir die open()-Funktion im Codeschnipsel auf, um den Inhalt aus der JSON-Datei zu lesen,

json importieren 
 
if __name__ == '__main__':
    price_data = None
    preis = []
   with open('data.json', encoding='utf8') as f:
        price_data = f.read()
 
   wenn preis_daten nicht None ist:
       json_price_data = json.loads(price_data)

Nach dem Einlesen der JSON-Daten werden diese in die in Python integrierten Datenstrukturen umgewandelt, wofür der Code die Methode json.loads() aufruft, um die JSON-Zeichenfolge in ein Wörterbuch oder eine Liste von Wörterbüchern umzuwandeln, je nach den Einträgen.

Da das Hauptziel darin besteht, den Laden zu finden, der das Produkt zum niedrigsten Preis verkauft, besteht unser Ziel darin, den Mindestpreis und andere relevante Details wie den Namen des Produkts und des Ladens zu finden. Die Preisinformationen des jeweiligen Geschäfts werden in den Schlüsseln amazon_price, ebay_price und Walmart_price gespeichert. Um den Mindestpreis für jedes Produkt zu finden, müssen wir die Preislistenelemente durchgehen.

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 = []

Wir verwenden Lambdas und setzen den Schlüssel von min(), um sicherzustellen, dass das Preisfeld verglichen wird. Das Ergebnis ist die folgende Ausgabe:

Wir sollten das Format ein wenig umstrukturieren.

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 = []

Es wird die folgende Ausgabe geben:

Herzlichen Glückwunsch! Wir haben erfolgreich das Skript erstellt, das Sie regelmäßig ausführen können, um die aktualisierten Preise des Produkts zu erhalten.

Welches ist der beste Proxy für Web Scraping für Preisvergleiche mit Python?

ProxyScrape ist einer der beliebtesten und zuverlässigsten Proxy-Anbieter im Internet. Zu den drei Proxy-Diensten gehören dedizierte Proxy-Server für Rechenzentren, Proxy-Server für Privatanwender und Premium-Proxy-Server. Was ist also die bestmögliche Lösung für den besten HTTP-Proxy für Web Scraping zum Preisvergleich mit Python? Vor der Beantwortung dieser Frage ist es am besten, sich die Merkmale der einzelnen Proxyserver anzusehen.

Ein dedizierter Rechenzentrums-Proxy eignet sich am besten für Hochgeschwindigkeits-Online-Aufgaben wie das Streaming großer Datenmengen (in Bezug auf die Größe) von verschiedenen Servern zu Analysezwecken. Dies ist einer der Hauptgründe, warum Unternehmen dedizierte Proxys für die Übertragung großer Datenmengen in kurzer Zeit wählen.

Ein dedizierter Proxy für das Rechenzentrum verfügt über mehrere Funktionen, wie unbegrenzte Bandbreite und gleichzeitige Verbindungen, dedizierte HTTP-Proxys für eine einfache Kommunikation und IP-Authentifizierung für mehr Sicherheit. Mit einer Betriebszeit von 99,9 % können Sie sicher sein, dass das dedizierte Rechenzentrum während jeder Sitzung immer funktioniert. Nicht zuletzt bietet ProxyScrape einen ausgezeichneten Kundenservice und hilft Ihnen, Ihr Problem innerhalb von 24-48 Stunden zu lösen. 

Als nächstes folgt ein Proxy für Wohnzwecke. Residential ist ein Proxy für alle Verbraucher. Der Hauptgrund dafür ist, dass die IP-Adresse eines Residential-Proxys der vom ISP bereitgestellten IP-Adresse ähnelt. Das bedeutet, dass es einfacher als sonst ist, vom Zielserver die Erlaubnis für den Zugriff auf seine Daten zu erhalten. 

Die andere Funktion des Proxys für Privatanwender von ProxyScrapeist die Rotationsfunktion. Ein rotierender Proxy hilft Ihnen, eine dauerhafte Sperrung Ihres Kontos zu vermeiden, da Ihr Wohn-Proxy Ihre IP-Adresse dynamisch ändert, was es dem Zielserver erschwert, zu überprüfen, ob Sie einen Proxy verwenden oder nicht. 

Abgesehen davon sind die anderen Merkmale eines Residential Proxy: unbegrenzte Bandbreite, zusammen mit gleichzeitiger Verbindung, dedizierte HTTP/s Proxys, Proxys zu jeder Zeit Sitzung wegen der 7 Millionen plus Proxys in der Proxy-Pool, Benutzername und Passwort-Authentifizierung für mehr Sicherheit, und nicht zuletzt die Fähigkeit, das Land Server zu ändern. Sie können den gewünschten Server auswählen, indem Sie den Ländercode an die Authentifizierung des Benutzernamens anhängen. 

Die letzte Variante ist der Premium-Proxy. Premium-Proxys sind die gleichen wie dedizierte Rechenzentrums-Proxys. Die Funktionalität bleibt die gleiche. Der Hauptunterschied ist die Zugänglichkeit. Bei Premium-Proxys wird die Proxy-Liste (die Liste mit den Proxys) jedem Nutzer im Netz von ProxyScrapezur Verfügung gestellt. Aus diesem Grund kosten Premium-Proxys weniger als dedizierte Rechenzentrums-Proxys.

Was ist also die bestmögliche Lösung für den besten HTTP-Proxy für Web Scraping zum Preisvergleich mit Python? Die Antwort lautet "Wohn-Proxy". Der Grund dafür ist einfach. Wie bereits erwähnt, handelt es sich beim Residential Proxy um einen rotierenden Proxy, d. h. Ihre IP-Adresse wird über einen bestimmten Zeitraum dynamisch geändert, was hilfreich sein kann, um den Server auszutricksen, indem Sie viele Anfragen innerhalb eines kurzen Zeitraums senden, ohne eine IP-Sperre zu erhalten. 

Als Nächstes wäre es am besten, den Proxyserver auf der Grundlage des Landes zu ändern. Sie müssen nur den ISO_CODE des Landes am Ende der IP-Authentifizierung oder der Authentifizierung mit Benutzername und Passwort anhängen. 

Empfohlene Lektüre:

YouTube-Kommentare scrapen - 5 einfache SchritteDie Top 8 der besten Python Web Scraping Tools im Jahr 2023Web Scraping für Nachrichtenartikel mit Python - der beste Weg im Jahr 2023

FAQs:

1. Was ist Preiskratzerei?
Price Scraping ist, wie der Name schon sagt, der Prozess, bei dem der Preis eines Produkts oder einer Dienstleistung online extrahiert wird, um eine Analyse durchzuführen, z. B. eine Konkurrenzanalyse, um die Marketingstrategie zu verbessern. Die Automatisierung des Scraping-Prozesses kann Ihnen helfen, Zeit und Ressourcen zu sparen, und Sie können dies mit Hilfe von Python tun.
2. Was ist der beste Proxy für Web Scraping zum Preisvergleich?
Der beste Proxy für die Durchführung von Web-Scraping zum Preisvergleich ist ein "Residential Proxy". Der Grund dafür ist, dass der Wohn-Proxy ein rotierender Proxy ist, was bedeutet, dass Ihre IP-Adresse über einen bestimmten Zeitraum dynamisch geändert wird, was hilfreich sein kann, um den Server auszutricksen, indem Sie viele Anfragen innerhalb eines kurzen Zeitraums senden, ohne eine IP-Sperre zu erhalten.
3. Ist Web Scraping für Preisvergleiche legal?
Die Antwort lautet: Ja. Sie können den Preis von einer E-Commerce-Website abrufen, da alle Informationen öffentlich zugänglich sind, d. h. alle öffentlichen Daten können abgefragt werden.

Schlussfolgerung

This article explored one more wonder of web scraping, i.e. “Price Comparison”. Not only this, we have built a tool that can do the price comparison job for you and keep you updated with the market trends. This article hopes to give enough information on web scraping for price comparison in an easy way. A proxy server is the best companion for web scraping. ProxyScrape provides best in a class residential proxy for your web scraping for price comparison projects. You can check the best residential proxy here.