Wenn Sie die Produktpreise aller Online-Shops und E-Commerce-Websites im Blick behalten möchten, müssen Sie viel Zeit in die Überwachung der einzelnen Seiten investieren, insbesondere wenn sich die Preise ohne Vorwarnung ändern. Die manuelle Bearbeitung kann anstrengend sein und stellt ein großes Hindernis dar, um Markttrends im Auge zu behalten und gleichzeitig die Wettbewerbsfähigkeit Ihrer Produkte zu gewährleisten.

In diesem Zeitalter ist es eine Notwendigkeit, eine gewisse Automatisierung bei der Bearbeitung einer umfangreichen und komplexen Aufgabe wie Preisintelligenz. In diesem Blog helfen wir Ihnen, den Prozess zu automatisieren und zeigen Ihnen, wie Sie ein Preis-Schaber mit Python und Crawlbase die diese Aufgabe schneller, einfacher und zuverlässiger machen können.

Inhaltsverzeichnis

  1. Vorteile von Web Scraping für Preisinformationen

  2. Wie Crawlbase Hilft bei der Preisintelligenz

  3. Schritt-für-Schritt-Anleitung: Erstellen eines Preis-Scrapers

  4. Umgang mit Herausforderungen beim Price Scraping

  5. Häufig gestellte Fragen

Vorteile von Web Scraping für Preisinformationen

Web-Scraping ist zu einem unverzichtbaren Instrument der Datenerfassung geworden, insbesondere wenn es um die Verfolgung von Produktinformationen auf verschiedenen E-Commerce-Websites geht. Die meisten Marktanalysten und Unternehmen nutzen es, um Preisdaten aus verschiedenen Quellen zu sammeln und fundierte Entscheidungen zu treffen. Viele Unternehmen setzen mittlerweile auf Web Scraping, um ihre Preisstrategien zu gestalten und anzupassen.

Schauen wir uns die wichtigsten Vorteile genauer an:

Echtzeit-Datenüberwachung

Eine leistungsstarke Anwendung von Web Scraping ist die Echtzeit-Datenextraktion. Mit der richtigen Einrichtung können Sie einen Scraper ausführen, der automatisch aktuelle Informationen von verschiedenen E-Commerce-Websites wie Amazon oder eBay abruft. Er kann gezielt auf bestimmte Produktseiten zugreifen, um Details wie Preis und Verfügbarkeit zu überwachen. Dieser Prozess kann vollständig automatisiert und minütlich ausgeführt werden, um Änderungen sofort zu verfolgen, ohne jede Website manuell aufrufen zu müssen. Der Scraper erledigt alles im Hintergrund.

Die mithilfe eines Web Scrapers extrahierten Daten können so organisiert werden, dass Datenanalysten und Entscheidungsträger Preisbewegungen besser verstehen und wertvolle Geschäftseinblicke gewinnen können. Ihr Team erhält einen Überblick über die aktuelle Marktlandschaft und kann so neue Trends erkennen.

Optimierung Ihrer Preisstrategie

Manchmal müssen Sie die Dinge genau unter die Lupe nehmen. Web Scraper lassen sich so anpassen, dass sie bestimmte Datenpunkte gezielt erfassen, um bestimmte Ziele zu erreichen. So können Sie Ihren Scraper beispielsweise so einstellen, dass er automatisch Amazon-, eBay- oder Walmart-Seiten überwacht und minütlich Preisinformationen aus Ihrem gesamten Produktkatalog sammelt. Anschließend können Sie die Daten so sortieren, dass Sie sehen, welche Wettbewerber gerade die besten Angebote haben. Dieser Detaillierungsgrad ermöglicht Ihnen präzisere Marketingentscheidungen.

Wie Crawlbase Hilft bei der Preisintelligenz

Es ist klar, dass Preisinformationen stark vom Web Scraping profitieren, aber die Entwicklung eines Web Scrapers von Grund auf ist keine einfache Aufgabe. Viele Unternehmen haben Schwierigkeiten, weil sie sich weigern, in die Entwicklung eines zuverlässigen Web Scrapers zu investieren.

Es geht nicht nur darum, Experten zu engagieren, die das Tool für Sie entwickeln. Entwickler müssen auch das richtige Tool finden, um die häufigsten Scraping-Herausforderungen so effizient wie möglich zu bewältigen. Und genau hier kommt es an Crawlbase hilft.

Der Crawling API

CrawlbaseDas Hauptprodukt von Crawling API vereinfacht das Web Scraping für Sie. Es handelt sich um eine API, die das Crawlen einer Webseite mit einer einzigen Anfrage ermöglicht. Sie müssen lediglich Ihre Ziel-URL angeben und diese über den API-Endpunkt senden. Die API kümmert sich im Hintergrund um die meisten Scraping-Hindernisse.

Hauptvorteile des Price Scraping mit Crawlbase

  • Datenzugriff in Echtzeit - Crawlbase speichert oder archiviert keine Daten. Es crawlt alle aktuell auf einer Zielwebseite verfügbaren Daten. Dadurch wird sichergestellt, dass Sie bei Anfragen an die API nur aktuelle und genaue Informationen erhalten.
  • Umgehen Sie häufige Scraper-Blockaden - Crawlbase löst gängige Web-Scraping-Probleme wie Bot-Erkennung, CAPTCHAs und Ratenbegrenzungen. Die API nutzt Tausende von Proxys, die regelmäßig gewartet werden und KI-gestützt sind, um eine nahezu 100 % hohe Erfolgsquote zu gewährleisten. Sie übernimmt auch die JavaScript-Wiedergabe, sodass Sie Headless-Browser oder Benutzeragenten nicht manuell in Ihrem Code konfigurieren müssen.
  • Einfache und skalierbare Integration – Sie können die API in einer einzigen Codezeile aufrufen. So einfach ist es, Ihre API-Anfrage zu senden. Sie können diesen Aufruf in jede Programmiersprache einfügen, die HTTP- oder HTTPS-Anfragen unterstützt. Darüber hinaus Crawlbase bietet Bibliotheken und SDKs, auf die Entwickler kostenlos zugreifen können, um die Integration bei der Skalierung zu vereinfachen.
  • Kosteneffiziente Lösung - Schon seit Crawlbase bietet Lösungen für die komplexesten Aspekte des Web Scrapings. Dies kann die Gesamtkosten Ihres Projekts erheblich beeinflussen. Ein Mindestbetrag für die Lösung ist oft sinnvoller, als den Großteil Ihres Budgets für die eigenständige Lösung komplexer Probleme auszugeben.
Ein Bild von Crawlbase bei der Preis-Scraping-Aktion

Schritt-für-Schritt-Anleitung: So erstellen Sie einen Preis-Scraper

In diesem Abschnitt führen wir Sie durch den Aufbau eines Scrapers für einige der größten Online-Shops mit dem Crawling API und zeigen Ihnen, wie einfach die Einrichtung ist, während wir die wichtigsten Funktionen hervorheben.

Zielwebsites auswählen (Amazon und eBay)

Bevor Sie mit dem Schreiben von Code beginnen, ist es wichtig, vorauszuplanen: Entscheiden Sie, welche Websites Sie ansprechen möchten, welche Datenpunkte Sie extrahieren müssen und wie Sie diese Daten verwenden möchten. Viele Entwickler beginnen natürlich mit beliebten Websites wie Amazon und eBay, da diese umfangreiche, vielfältige Datensätze bieten, die für Anwendungen wie Preisinformationen wertvoll sind.

Für diese Codierungsübung konzentrieren wir uns auf die folgenden SERP-URLs als unsere Ziele:
Amazon
eBay

Richten Sie Ihren Arbeitsbereich ein

An dieser Stelle müssen Sie Ihre bevorzugte Programmiersprache auswählen. Für dieses Beispiel verwenden wir Python, da es allgemein als eine der einfachsten Sprachen für den Einstieg gilt. Sie können jedoch auch jede andere Sprache verwenden. Folgen Sie einfach den Anweisungen und wenden Sie die hier beschriebene Logik an.

Richten Sie Ihre Codierungsumgebung ein

  1. Installieren Sie Python 3 auf deinem Computer.
  2. Erstellen Sie ein Stammverzeichnis in unserem Dateisystem.
1
2
mkdir Preisintelligenz
cd Preisintelligenz
  1. Erstellen Sie im Stammverzeichnis eine Datei mit dem Namen requirements.txtund fügen Sie die folgenden Einträge hinzu:
1
2
3
4
Zugriffe
tabellarisch
Preisparser
Pandas

Dann renne:

1
python -m pip install -r requirements.txt

Senden von Anfragen mit Crawlbase

Beginnen wir mit dem Erstellen des Scrapers für die Amazon-Suchmaschinen-Ergebnisseite. Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei mit dem Namen amazon_serp_scraper.py, und folgen Sie uns.

Fügen Sie Ihrem Skript Importanweisungen hinzu.

1
2
3
importieren Zugriffe
importieren urllib.parse
von Anfragen.Ausnahmen importieren RequestException

Die Funktion „Add“ sucht mithilfe einer gegebenen Abfrage nach Produkten auf Amazon, mit optionalen Parametern für den Ländercode und die Top-Level-Domain (wie etwa .com oder .co.uk), und gibt eine Liste mit Produktwörterbüchern zurück.

1
def Produkte von Amazon erhalten(Abfrage: str, Land: str = Non, Top-Level-Domäne: str = 'com') -> Liste[diktieren]:

Richtet Ihr API-Token ein und Crawlbase Endpunkt zum Senden der Anfrage.

1
2
API_TOKEN = " "
API_ENDPOINT = "https://api.crawlbase.com/"

Erstellen Sie die Parameter für die GET-Anfrage, indem Sie die Suchanfrage für die Amazon-URL kodieren und die Amazon SERP Scraper zusammen mit einem optionalen Länderparameter.

1
2
3
4
5
6
Parameter = {
"Zeichen": API_TOKEN,
"URL": f"https://www.amazon.{Top-Level-Domain}/s?k={urllib.parse.quote_plus(Abfrage)}",
"Schaber": "amazon-serp",
"Land": Land
}

Senden Sie die Anfrage an die Crawling API, analysieren und geben Sie dann die Produktdaten zurück.

1
2
3
4
5
Antwort = Anfragen.get(API_ENDPOINT, Parameter=Parameter)
Response.raise_for_status()

Ergebnis = Antwort.json()
Rückkehr Ergebnis['Körper']['Produkte']

Um das Programm auszuführen, fügen Sie am Ende des Skripts den folgenden Codeausschnitt ein:

1
2
3
4
5
6
7
if __name__ == "__hauptsächlich__":

importieren JSON

Produkte = Produkte von Amazon abrufen("Apple iPhone 15 Pro Max 256GB", Land="UNS", Top-Level-Domain="co.uk")
pretty_json = json.dumps(Produkte, Einzug=2)
drucken(hübsches_json)

Sie können die Werte im Funktionsaufruf Ihren Anforderungen entsprechend anpassen. Ersetzen Sie beispielsweise „Apple iPhone 15 Pro Max 256 GB“ mit jedem anderen Produktnamen, ändern "UNS" auf eine andere Landesvorwahl oder aktualisieren „co.uk“ zu einer anderen Amazon-Domain wie „com“ or "von".

Vollständiges Codebeispiel:

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
importieren Zugriffe
importieren urllib.parse
von Anfragen.Ausnahmen importieren RequestException

def Produkte von Amazon erhalten(Abfrage: str, Land: str = Non, Top-Level-Domäne: str = 'com') -> Liste[diktieren]:
API_TOKEN = " "
API_ENDPOINT = "https://api.crawlbase.com/"

Parameter = {
"Zeichen": API_TOKEN,
"URL": f"https://www.amazon.{Top-Level-Domain}/s?k={urllib.parse.quote_plus(Abfrage)}",
"Schaber": "amazon-serp",
"Land": Land
}

Antwort = Anfragen.get(API_ENDPOINT, Parameter=Parameter)
Response.raise_for_status()

Ergebnis = Antwort.json()

Rückkehr Ergebnis['Körper']['Produkte']

if __name__ == "__hauptsächlich__":

importieren JSON

Produkte = Produkte von Amazon abrufen("Apple iPhone 15 Pro Max 256GB", Land="UNS", Top-Level-Domain="co.uk")
pretty_json = json.dumps(Produkte, Einzug=2)
drucken(hübsches_json)

Führen Sie das Skript mit dem folgenden Befehl vom Terminal aus:

1
Python amazon_serp_scraper.py

Nach erfolgreichem Abschluss wird die folgende Rohdatenausgabe angezeigt:

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
[
{
"Name": "Apple iPhone 16 Pro Max 256GB: 5G-Handy mit Apple Intelligence – Desert Titanium + Silikonhülle mit MagSafe – Schwarz",
"Preis": "\u00a31,138.00",
"Rohpreis": 1138.0,
"Währung": "\u00a3",
"Angebot": "",
"Kundenrezension": „4.4 von 5 Sternen“,
"Kundenbewertungsanzahl": "367",
"Versandnachricht": "",
"asin": „B0DGTJ6Y1S“,
"Bild": "https://m.media-amazon.com/images/I/61EpQCNARNL._AC_UY218_.jpg",
"URL": "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-1",
"istPrime": falsch,
„gesponserte Anzeige“: falsch,
"GutscheinInfo": "",
"AbzeichenInfo": [],
"gekaufteInfo": ""
},
// Hinweis: Einige Ergebnisse wurden der Kürze halber weggelassen.
{
"Name": „Apple iPhone 11 Pro Max, 256 GB, Mitternachtsgrün (erneuert)“,
"Preis": "\u00a3264.00",
"Rohpreis": 264.0,
"Währung": "\u00a3",
"Angebot": "",
"Kundenrezension": „4.1 von 5 Sternen“,
"Kundenbewertungsanzahl": "258",
"Versandnachricht": "",
"asin": "B082BGTHP6",
"Bild": "https://m.media-amazon.com/images/I/71g5LVVdbaL._AC_UY218_.jpg",
"URL": "https://www.amazon.co.uk/Apple-iPhone-256GB-Midnight-Renewed/dp/B082BGTHP6/ref=sr_1_16?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-16",
"istPrime": falsch,
„gesponserte Anzeige“: falsch,
"GutscheinInfo": "",
"AbzeichenInfo": [],
"gekaufteInfo": ""
}
]

Erstellen Sie als nächstes eine neue Datei mit dem Namen ebay_serp_scraper.py für die eBay-Integration und fügen Sie den folgenden Code mit demselben Ansatz hinzu, den wir im Amazon-Scraper verwendet haben.

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
importieren Zugriffe
importieren urllib.parse
von Anfragen.Ausnahmen importieren RequestException

def Produkte von eBay abrufen(Abfrage: str, Land: str = Non, Top-Level-Domäne: str = 'com') -> Liste[diktieren]:
API_TOKEN = " "
API_ENDPOINT = "https://api.crawlbase.com/"

Parameter = {
"Zeichen": API_TOKEN,
"URL": f"https://www.ebay.{Top-Level-Domain}/sch/i.html?_nkw={urllib.parse.quote_plus(Abfrage)}",
"Schaber": "ebay-serp",
"Land": Land
}

Antwort = Anfragen.get(API_ENDPOINT, Parameter=Parameter)
Response.raise_for_status()

Ergebnis = Antwort.json()

Rückkehr Ergebnis['Körper']['Produkte']

if __name__ == "__hauptsächlich__":

importieren JSON

Produkte = Produkte von eBay abrufen("Apple iPhone 15 Pro Max 256GB", Land="UNS", Top-Level-Domain="co.uk")
pretty_json = json.dumps(Produkte, Einzug=2)
drucken(hübsches_json)

Sobald Sie das Skript ausführen, indem Sie python ebay_serp_scraper.py In Ihrem Terminal sollten Sie die Rohausgabe wie unten gezeigt sehen:

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
[
{
„Titel“: „Neues Angebot: iPhone 15 Pro Max – 256 GB Blue Titanium“,
"Untertitel": ["Gebraucht"],
"Preis": {
"aktuell": {
"von": "\u00a3513.93",
"zu": "\u00a3513.93"
},
"Trendpreis": null,
"vorherigerPreis": ""
},
"Verkaufsdatum": "",
"Enddatum": "",
"Gebotsanzahl": 0,
"Schärfe": "",
"zusätzliche Schärfe": [],
"Kundenrezensionen": {
"Rezension": "",
"Anzahl": 0,
"Verknüpfung": ""
},
"Versandnachricht": "Porto nicht angegeben",
"Bild": "https://i.ebayimg.com/images/g/cQkAAOSww3toOdUj/s-l500.webp",
"URL": "https://www.ebay.co.uk/itm/146617243528?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP0SV257V8N99DP0GB2B2FK&hash=item2223119788:g:cQkAAOSww3toOdUj&itmprp=enc%3AAQAKAAAA4FkggFvd1GGDu0w3yXCmi1e4U9NgN8cbPDciCpZxd4y9M7arS1PIV503raP8NGkFrAGVGTcTJ93CtRBBBR%2BVdNPFCvqlvQFqv0p54lMQYaGfzNm2BDkKB8pOYhDKGV44h10dcGqP8Txe9bOa2%2BxUU4c03zlQjb5BBp5tZ6gfqvtXuJtaf6xW09Np944o3hzvtrVoM%2Fv9BcdTnUznCeLvNxWNQB9IG4%2BYEFyqvvcZce%2FbSdKA4hmdFerIaeAjWlWEpu7%2F1ZZV9ElPz9yibQZ6YcvruBvpIS3YYlvAypHn6yp8%7Ctkp%3ABk9SR5yx58DlZQ",
"Lage": "Großbritannien",
"Zeit": {
"übrige Zeit": „Noch 6 Tage und 23 Stunden“,
"Zeitende": "(So., 08:00)"
},
"Auflistungsdatum": "",
"bestbewerteter Verkäufer": falsch,
„gesponserte Anzeige“: falsch,
"Verkäuferinfo": „davidawilliams1 (2,001) 100 %“
},
// Hinweis: Einige Ergebnisse wurden der Kürze halber weggelassen.
{
„Titel“: „Toller Zustand – Apple iPhone 15 Pro Max 256GB Blau Titanium 98% Akku -1047-“,
"Untertitel": ["Gebraucht"],
"Preis": {
"aktuell": {
"von": "\u00a3709.00",
"zu": "\u00a3709.00"
},
"Trendpreis": null,
"vorherigerPreis": ""
},
"Verkaufsdatum": "",
"Enddatum": "",
"Gebotsanzahl": 0,
"Schärfe": „20 Beobachter“,
"zusätzliche Schärfe": [],
"Kundenrezensionen": {
"Rezension": "",
"Anzahl": 19,
"Verknüpfung": "https://www.ebay.co.uk/p/24062761146?iid=236096139018#UserReviews"
},
"Versandnachricht": "Porto nicht angegeben",
"Bild": "https://i.ebayimg.com/images/g/xIEAAeSw-NhoILdt/s-l140.webp",
"URL": "https://www.ebay.co.uk/itm/236096139018?_skw=Apple+iPhone+15+Pro+Max+256GB&epid=24062761146&itmmeta=01JWP0SV29B7VZRTR5336M14WJ&hash=item36f86d2f0a:g:xIEAAeSw-NhoILdt&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1d4wiok8NH9ED6XupF4lEB05soO%2BX9YmeNcvnhAT2xl8%2BMR4mTSpPbdLrOdQTzvZweJCy9AbPRRp%2F3fEqBcyd%2B5KAg80QbLwBoSqH0%2BeYox7n1qscvQrlMrB71D%2FNgjlJfHccWLZ%2FGngbtsV5ccazqhwfxQdUKd0i%2BgDc6vXrrD%2F5SrwBFP5B7By2Vao286t0uJFGHFt28Hit8Si6T2mAYp5VdmEJN4YPv0xAlEwjmiPZ94WWHtYHGzBfZgdg9pRZHngDYjfm0iVEkcLab9c3G5xbhlMKPjRvjgC8DcoRUnHD%2FJSfIkRTLH0PzFBsjmyTw%3D%7Ctkp%3ABFBMpLHnwOVl",
"Lage": "Großbritannien",
"Zeit": {
"übrige Zeit": "",
"Zeitende": ""
},
"Auflistungsdatum": "",
"bestbewerteter Verkäufer": falsch,
„gesponserte Anzeige“: was immer dies auch sein sollte.,
"Verkäuferinfo": "2mselectronics (728) 100%"
}
]

Extrahieren und Strukturieren von Preisdaten

Die aktuelle API-Ausgabe ist zwar sauber und liefert wertvolle Informationen, doch nicht alle sind für unser spezifisches Ziel in diesem Zusammenhang relevant. In diesem Abschnitt zeigen wir, wie Sie die Daten weiter standardisieren und analysieren, um nur die benötigten Datenpunkte zu extrahieren.

Erstellen wir eine neue Datei mit dem Namen structured_consolidated_data.py und fügen Sie den folgenden Code ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
von amazon_serp_scraper importieren Produkte von Amazon erhalten
von eBay-SERP-Scraper importieren Produkte von eBay abrufen

def Strukturierte konsolidierte Daten abrufen(Abfrage: str, Land: str = Non, Top-Level-Domäne: str = 'com') -> Liste[diktieren]:
Produkte = []

amazon_data = get_products_from_amazon(Abfrage, Land=Land, Top_Level_Domain=Top_Level_Domain)
Produkte.erweitern([{"Produkt": Artikel['Süßkartoffel'], "Preis": Artikel['Preis'], "URL": Artikel['URL'], "Quelle": "Amazonas"} für Artikel in amazon_data])

ebay_data = get_products_from_ebay(Abfrage, Land=Land, Top_Level_Domain=Top_Level_Domain)
Produkte.erweitern([{"Produkt": Artikel[‚Titel‘], "Preis": Artikel['Preis']['aktuell']['zu'].Streifen(), "URL": Artikel['URL'], "Quelle": "Ebay"} für Artikel in ebay_data])

Rückkehr Produkte

Dieses Skript zieht relevante Produktdaten von Amazon und eBay aus dem Crawlbase Daten-Scraper. Es extrahiert und kombiniert wichtige Details wie Quelle, Produkt, Preis und URL aus jedem Suchergebnis in einer einzigen, benutzerfreundlichen Liste.

Hier ist der vollständige Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
von amazon_serp_scraper importieren Produkte von Amazon erhalten
von eBay-SERP-Scraper importieren Produkte von eBay abrufen

def Strukturierte konsolidierte Daten abrufen(Abfrage: str, Land: str = Non, Top-Level-Domäne: str = 'com') -> Liste[diktieren]:
Produkte = []

amazon_data = get_products_from_amazon(Abfrage, Land=Land, Top_Level_Domain=Top_Level_Domain)
Produkte.erweitern([{"Produkt": Artikel['Süßkartoffel'], "Preis": Artikel['Preis'], "URL": Artikel['URL'], "Quelle": "Amazonas"} für Artikel in amazon_data])

ebay_data = get_products_from_ebay(Abfrage, Land=Land, Top_Level_Domain=Top_Level_Domain)
Produkte.erweitern([{"Produkt": Artikel[‚Titel‘], "Preis": Artikel['Preis']['aktuell']['zu'].Streifen(), "URL": Artikel['URL'], "Quelle": "Ebay"} für Artikel in ebay_data])

Rückkehr Produkte

if __name__ == "__hauptsächlich__":

importieren JSON

Produkte = Strukturierte_konsolidierte_Daten abrufen("Apple iPhone 15 Pro Max 256GB", Land="UNS", Top-Level-Domain="co.uk")

pretty_json = json.dumps(Produkte, Einzug=2)
drucken(hübsches_json)

Führen Sie das Skript mit dem folgenden Befehl vom Terminal aus:

1
Python structure_consolidated_data.py

Sobald Sie eine erfolgreiche Antwort erhalten, wird die konsolidierte Ausgabe in einem strukturierten Format angezeigt und zeigt das Quellfeld anstelle der Rohdaten.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
{
"Produkt": "Apple iPhone 16 Pro Max 256GB: 5G-Handy mit Apple Intelligence – Desert Titanium + Silikonhülle mit MagSafe – Schwarz",
"Preis": "\u00a31,138.00",
"URL": "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748791075&sr=8-1",
"Quelle": "Amazonas"
},
// Hinweis: Einige Ergebnisse wurden der Kürze halber weggelassen.
{
"Produkt": "Apple iPhone 15 Pro Max (256 GB) - Weiß Titan - Guter Zustand",
"Preis": "\u00a3679.99",
"URL": "https://www.ebay.co.uk/itm/205475768012?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP14FHS44GRVT9KYP8AFKEW&hash=item2fd74f66cc:g:QkcAAOSwLKRoHd86&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1enej%2BIHaZBwUjnCYNkoIrYanJLRykGLG546KgFE4C%2BH%2FGVT3ptDyAFH87uYJ2y6Ih4qylSr70KgmTvf7QzxWJJb8UIuLl9GWlI4h4QLVbnS26iLFU08zLSz8kbcbyI5kILO9IRzzTpKec0Cxb4G8ujEojvnrdM8G3oP5ud4QwSccYRK7L8PnDvS7qECHgMXmshCmZh749EOMqeDYRFSCqmPYQ6etMUr0y38Wag%2BT%2BLOIkx8XxR3fTC4FbbMPGGUDdNpG1jLJ3e%2F6X9tZuQuDp4lprfyjTKWD564verk%2FxhORgHzaHvDhmmEE121dibsOU%3D%7Ctkp%3ABFBMgvmRweVl",
"Quelle": "Ebay"
}
]

Nutzen Sie die Scraped-Daten

Nachdem wir die relevanten Daten für unsere Zwecke erfolgreich analysiert haben, können wir sie nun auf grundlegende Preisinformationen anwenden. Beispielsweise können wir ein Skript schreiben, um den Durchschnittspreis des „Apple iPhone 15 Pro Max 256 GB“ bei Amazon gelistet und vergleichen Sie es mit dem Durchschnittspreis bei eBay.

Erstellen Sie eine neue Datei mit dem Namen market_average_price.py und fügen Sie den folgenden Code ein:

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
importieren Pandas as pd
von Preisparser importieren Preis
von strukturierte_konsolidierte_Daten importieren Strukturierte konsolidierte Daten abrufen

Produkte = Strukturierte_konsolidierte_Daten abrufen("Apple iPhone 15 Pro Max 256GB", Land="UNS", Top-Level-Domain="co.uk")
Produkte mit Preisen = Filter(Lambda Produkt: (Produkt["Preis"] is nicht Non und Produkt["Preis"].strip() != ''), Produkte)
desinfizierte_Produkte = [Produkt | {"Preis": schweben(Preis.fromstring(Produkt["Preis"]).Menge) } für PRODUKTE in Produkte_mit_Preisen]

Daten = Liste(desinfizierte Produkte)
df = pd.DataFrame(Daten)

# Datentypen prüfen und Quellspalte untersuchen
iphone_mask = df['Produkt'].str.enthält(„iPhone“, Häuser=falsch, na=falsch)

# Berechnen Sie die Durchschnittspreise für iPhone-Modelle nach Quelle
iphone_df = df[df['Produkt'].str.enthält(„iPhone“, Häuser=falsch, na=falsch)]

# Nach Quelle gruppieren und Durchschnittspreise berechnen
Durchschnittspreise = iphone_df.groupby('Quelle')['Preis'].agg(['bedeuten', 'zählen']).rund(2)
avg_prices.columns = [„Durchschnittspreis (£)“, 'Anzahl der Produkte']

drucken("\n\nDurchschnittliche iPhone-Preise nach Quelle:")
drucken(Durchschnittspreise)

# Berechnen Sie die Differenz
amazon_avg = avg_prices.loc['Amazonas', „Durchschnittspreis (£)“]
ebay_avg = avg_prices.loc['Ebay', „Durchschnittspreis (£)“]
Differenz = Amazon_Durchschnitt - eBay_Durchschnitt

drucken("\n\nPreisvergleich:")
drucken(f"Amazon-Durchschnitt: £{amazon_avg}")
drucken(f"eBay-Durchschnitt: £{ebay_avg}")
drucken(f"Differenz: £{Unterschied:.2f} (Amazon ist {'höher' if Unterschied > 0 sonst 'untere'} als eBay)\n\n")

Um das Skript auszuführen, führen Sie den folgenden Befehl in Ihrem Terminal aus:

1
Python market_average_price.py

Bei erfolgreichem Abschluss wird eine Ausgabe ähnlich der folgenden angezeigt:

Eine Terminalkonsolenausgabe für Preisinformationen

Entdecken Sie alles Codebasis auf GitHub.

Umgang mit den Herausforderungen des Preis-Scrapings in Python

Ratenbegrenzungen und Erfolgsrate

Der Standard Bewertungslimit für die Crawling API beträgt 20 Anfragen pro Sekunde für E-Commerce-Websites. Wenn Sie 429-Fehler sehen, bedeutet dies, dass Sie dieses Limit erreicht haben. Das Limit kann jedoch je nach Verkehrsaufkommen und spezifischen Anforderungen erhöht werden. Sie müssen sich an Crawlbase Kunden-Support falls Sie Unterstützung benötigen.

Obwohl die Erfolgsraten aufgrund der Unberechenbarkeit einiger Websites manchmal variieren können, CrawlbaseDie Erfolgsbilanz von gewährleistet in den meisten Fällen eine Erfolgsquote von über 95 %. Darüber hinaus fallen für fehlgeschlagene Anfragen keine Kosten an, sodass Sie diese ignorieren und erneut an die API senden können.

Umgang mit JavaScript-gerenderten Inhalten

Manche Seiten benötigen JavaScript, um die benötigten Daten darzustellen. In diesen Fällen können Sie vom normalen Anforderungstoken zum JavaScript-Token wechseln. Dadurch kann die API ihre Headless-Browser-Infrastruktur nutzen, um JavaScript-Inhalte korrekt darzustellen.

Wenn Sie fehlende Daten in der API-Antwort bemerken, ist dies ein guter Hinweis darauf, dass es Zeit ist, zum JavaScript-Token zu wechseln.

Gewährleistung von Genauigkeit und Aktualität

Es ist immer ratsam, die Genauigkeit und Aktualität der durch Scraping gesammelten Daten zu überprüfen. Sie können die Preise von Zeit zu Zeit manuell überprüfen, aber Crawlbase stellt sicher, dass die Daten, die Sie von der API erhalten, die aktuellsten Informationen widerspiegeln, die zum Zeitpunkt des Crawls verfügbar sind.

Crawlbase ändert oder manipuliert keine von Ihrer Zielwebsite abgerufenen Daten.

Testen Sie jetzt die Crawling API . Kontaktieren Sie uns jetzt! Ein Konto erstellen um Ihre 1,000 kostenlosen Anfragen zu erhalten. Mit diesen Anfragen können Sie die Antwort der API bewerten, bevor Sie eine Verpflichtung eingehen. Dies ist eine risikofreie Möglichkeit, die Ihren Projekten erheblich zugute kommen kann.

Häufig gestellte Fragen (FAQs)

F1: Was ist Web Scraping für den Preis?

Web Scraping für Preise ist der Prozess der automatischen Extraktion von Preisinformationen aus Online-Quellen wie E-Commerce-Websites, Produktlisten oder Konkurrenzplattformen. Unternehmen verwenden Web Scraping-Tools wie Crawlbase Um Preisdaten in Echtzeit zu extrahieren, können sie Schwankungen überwachen, Rabatte verfolgen und Einblicke in Markttrends gewinnen. Dies ermöglicht intelligentere Preisentscheidungen und eine bessere Reaktion auf die Konkurrenz.

F2: Was ist das Scraping von Preisdaten?

Beim Scraping von Preisdaten werden mithilfe von Automatisierungsskripten strukturierte Preisinformationen von Online-Plattformen gesammelt. Diese Erkenntnisse können dann analysiert werden, um Preisstrategien zu unterstützen, sich mit Wettbewerbern zu vergleichen oder in Analyse-Dashboards für die laufende Marktbewertung einzuspeisen.

F3: Welche Rolle spielt Web Scraping bei der Wettbewerbspreisanalyse und Marktforschung?

Durch das Web Scraping von Wettbewerbspreisen können Unternehmen die Preise der Konkurrenz überwachen, die Marktpositionierung verstehen und Preistrends über Regionen und Kanäle hinweg erkennen. Diese Daten unterstützen die strategische Planung, Nachfrageprognosen und die Preisoptimierung in Echtzeit.