Amazon Python API: Konfiguration und Möglichkeiten

Der E-Commerce Riese aus den USA bietet mit seiner kostenlosen Amazon Python API für private Käufer und kommerzielle Händler einen großen Funktionsumfang. Die API gibt Dir Zugriff auf unterschiedlichen Marktplätze. Einfache und komplexe (Filter) Suchanfragen, mit aktuell 50 Suchergebnissen, die sehr detailliert analysiert werden können sind möglich. Du kannst Preis, Merkmale wie Größe oder Gewicht, Verkaufsrang, Artikelbeschreibung (Bulletpoints) oder die Bewertungen bequem in Python auslesen. Die Amazon Python API kannst Du z. B. für einen eignen Amazon Crawler oder einen Preistracker nutzen.

Die Amazon Python API

Bei der Amazon Python API handelt es sich um eine von Amazon entwickelte Schnittstelle. Amazon stellt die API kostenlos (je nach Benutzung) für Entwickler und Endnutzer bereit. Mit ihr kannst Du auf die verschiedenen Marktplätze wie USA, Spanien oder Deutschland zugreifen, Suchanfragen starten und die Ergebnisse (SERP) auswerten. Anders als in einem Browser kannst Du die Suchergebnisse in eigenen Programmen zur Datenanalyse mit Python oder in eigenen Datenbanken weiterverwenden.

Vorteile der Amazon Python API

Amazon wünscht / erlaubt nicht, mit eigenen Programmen die Webseite automatisiert zu bedienen (Suchanfragen starten, Angebote anklicken, Preise auslesen, …). Das automatische Auslesen von Webseiten wird scraping genannt. Diese Einschränkung gilt nicht für die bereitgestellte Amazon Python API. Freilich gibt es für Python Pakete wie mechanize, die einen Browser emulieren und Webseiten steuern (z. B. Links folgen, Bilder speichern, Formulare ausfüllen) können. Ein effizienter Weg ist das aber nicht, denn: Amazon kann jederzeit den Seitenaufbau ändern, so dass fest programmierte Tools ständig neu angepasst werden müssen.

Für mich spricht deshalb Vieles für die Nutzung der Amazon Python API. Einige Vorteile sind:

  • 50 Ergebnisse pro Suchanfrage
  • Zugriff auf Amazons discovery Funktionen: Kunden die X kauften, kauften auch Y und Z
  • die SERPs sind browserunabhängig (Liste vs. Karo, PPC / Headline Search Ads)
  • schneller Zugriff auf die Ergebnisse: Datenanalyse mit Python ohne Umwege

Python Wrapper für die Amazon Python API

Wer die Wahl hat hat die Qual: Für den Start müssen wir uns zwischen zwei Varianten entscheiden: Von Amazon direkt gibt es die python amazon product api sowie mit python-amazon-simple-api einen einfachen Wrapper. (Ein Wrapper stellt einen Adapter, eine Schnittstelle dar. In diesem Fall ist der Wrapper die Schnittstelle zur Amazon Schnittstelle.)

Für erste Gehversuche mit der Amazon Python API würde ich Dir den Wrapper empfehlen, da er etwas einfacher zu bedienen ist als die API selber. Außerdem habe ich alle meine Amazon Tools damit programmiert. Hast Du bereits Python für Windows installiert, kannst Du direkt die Amazon Python API installieren und loslegen.

Amazon Python API installieren

Eine aktive Internetverbindung voraus gesetzt, geht die Installation leicht mit dem eigenen Paketmanagement. Falls Du in einer Firma sitzt – oder aus sonstigen Gründen hinter einem Proxy bist – verwende die PIP Option --proxy=username:passwort@DeineProxyAdresse.

Egal ob Du einen Python Windows Interpreter, Mac OS oder Linux hast: ich arbeite immer mit Virtuellen Umgebungen und würde Dir das Gleiche empfehlen. Hier findest Du ein Cheat Sheet für das managen von Virtuellen Umgebungen und Paketen mit Conda / Anaconda. Zum Installieren tippe folgende Zeilen in eine Konsole:

pip install bottlenose
pip install lxml
pip install python-dateutil
pip install python-amazon-simple-product-api

aws amazon web service konto erstellen
Auf der Startseite von AWS kannst Du Dir ein kostenloses Amazon Web Services Konto erstellen.

Bevor Du mit der Amazon Python API echte Suchanfragen starten kannst, musst Du Dir hier einen Amazon Partner Net (Amazon Product Advertising) sowie hier einen AWS (Amazon Web Services) Zugang erstellen. Beide Zugänge sind kostenlos – über den Partner Net Zugang lässt sich sogar Geld verdienen (Affiliate Marketing). Achtung: Mit dem AWS Account sind kostenpflichtige Dienste wie Cloud Speicher oder Cloud Computing möglich. Die Nutzung der Amazon Python API ist hingegen (Stand 08/2018) kostenlos.

Amazon Partner Net

Ein Nachteil bei der Anmeldung für das Amazon Partner Net ist, dass Du eine aktive Webseite brauchst. Während der Registrierung frägt Amazon einige Punkte ab wie Besucherzahlen, (geplante) Inhalte, ob Du noch andere Affiliate Programme nutzt usw. Beantworte am besten alles mit der Wahrheit. Es ist nichts dabei wenn man gerade erst mit einem Projekt startet. Die Seite kann später auch wieder abgemeldet werden. Mein Tipp für Webhosting ist all-inkl.

Als Amazon Partner Net Mitglied hast Du die Möglichkeit über sogenannte Affiliate Links Produkte auf Amazon zu bewerben: Kauft ein Kunde über Deinen Link (Reflink) erhälst Du eine (kleine) Werbekostenerstattung dafür. Was wir für die Python Amazon API brauchen, ist der Associate Tag – so etwas wie Dein (eindeutiger) Benutzername (damit Amazon die erzeugten Umsätze zuordnen kann).

Amazon Web Services

Die Anmeldung bei den Amazon Web Services ist zwar ebenso einfach, die Verwaltung des Zugangs (intern) aber etwas fummelig. Alles was wir brauchen sind sind der access key und secret key. Hier findest Du direkt von Amazon eine Anleitung, wie Du diese beiden Schlüssel, die den Zugriff auf die Web Services erlauben, erstellen kannst. Achtung: Mit diesem Schlüssel kannst Du (und jeder der ihn hat!) auch kostenpflichtige Services nutzen. Sie sind also genauso geheim zu halten wie ein Zugangspasswort.

Möglichkeiten mit der Python Amazon API

Die Amazon Python API bietet viele Möglichkeiten den Katalog der verschiedenen Amazon Marktplätze zu durchsuchen. Du kannst über die Suchergebnisse (SERPs) iterieren und bequem alle Produktmerkmale auslesesn. Dazu gehören:

  • Produkt Titel und Preis
  • BSR (Bestsellerrank), also den Verkaufsrang eines Produkts
  • Produktmerkmale (Bulletpoints)
  • Bewertungen
  • Produktbeschreibung
  • URL der Bilder
  • ASIN (amazon standard indentification number)

Funktionen der Python Amazon API

Kernelement des Wrappers sind die 3 Methoden um:

  • Suchergebnisse nach Keywords zu sortien (entspricht der Eingabe im Suchfeld) (search),
  • Produktmerkmale für eine ASIN (lookup),
  • Ähnliche Produkte zu einer ASIN zu suchen (similarity_lookup).

Was Du daraus machst bleibt Dir überlassen 😉 Ich habe mir z.B. einen Ranking Tracker und Keyword Crawler gemacht. Der Ranking Tracker gibt mir einmal pro Woche das Ranking meiner ASINs zu den wichtigsten Keywords in eine Excel Tabelle aus. Grundsätzlich lassen sich auch Warenkörbe manipulieren, PPC Kampagnen auslesen (Reports) und optimieren.

Suchanfragen mit der Python Amazon API

Mitsearch kannst Du Suchanfragen über die API starten, so als ob Du auf der Seite von Amazon etwas in das Suchfeld eingibst. Die Methode gibt ein Element zurück, das alle Suchergebnisse in Form eines Produkt-Objekts enthält und über das Du iterieren kannst.

In meinem ersten Beispiel suche ich auf amazon.de nach dem Keyword „knoblauchpresse“. Danach gebe ich die Titel, den Preis und die ASINs der ersten 10 Suchanfragen zurück:

from amazon.api import AmazonAPI
import numpy as np
import pandas as pd
import time

# Config 
access_key = "Dein Key"
secret_key = "Dein Key"
associate_tag = "Dein Tag"

amazon = AmazonAPI(access_key,
                   secret_key,
                   associate_tag,
                   region="DE",
                   MaxQPS=0.9) 

products = amazon.search(Keywords="knoblauchpresse", SearchIndex='All')
for i, product in enumerate(products):
    print(product.title, product.list_price, product.asin)

In der markierten Zeile wird die Amazon Python API konfiguriert, die Parameter sind nach den Access Keys und dem Associate Tag der Amazon Marktplatz auf den die Suchanfragen zielen (region="DE") und eine Option die ich nützlich finde: MaxQPS=0.9. Sie steht für max queries per second, und begrenzt die Suchanfragen pro Sekunde. Neue Accounts können 1 Suchanfrage pro Sekunde starten; Pro 30 Tage ohne Umsatz (gleitender 30 Tagesdurchschnitt) verringert sich dieser Wert pro Tag dieser um 0.1 Suchanfragen pro Sekunde, bis minimal ein Wert von 0.1 Suchanfrage pro Sekunde erreicht wird.

Die Ausgabe (noch nicht sauber formatiert) sieht so aus:

(0, u'[Knoblauchpresse] FREETOO Knoblauchschneider Garlic Press h\xe4uslicher Knoblauch Crusher praktischer K\xfcchenhelfer mit langer Verwendungsdauer f\xfcr besseres Familienleben', (Decimal('17.98'), 'EUR'), 'B01CCKW8QY')
(1, 'Ikea Knoblauchpresse KONCIS, Edelstahl, 16cm', (Decimal('8.99'), 'EUR'), 'B00PNKYZQC')
(2, u'qobobo\xae Premium Edelstahl Knoblauch presse, Garlic Press, Knoblauchbrecher mit Silikon Knoblauchsch\xe4ler', (Decimal('9.99'), 'EUR'), 'B074X2NS3W')
(3, 'OXO Good Grips Knoblauchpresse', (Decimal('19.99'), 'EUR'), 'B00HEZ888K')
(4, 'Knoblauchpresse, Cooleaf Zinklegierung Knoblauchschneider, Garlic press', (Decimal('19.99'), 'EUR'), 'B071G1CSTW')
(5, u'WMF Profi Plus Knoblauchpresse, 17,5 cm, Cromargan Edelstahl teilmattiert, sp\xfclmaschinengeeignet', (Decimal('39.95'), 'EUR'), 'B00008XVSQ')
(6, u'Knoblauchpresse Sp\xfclmaschinenfest, Kolier Edelstahl Knoblauchpresse, Garlic Press mit Silikon Sch\xe4ler', (Decimal('14.5'), 'EUR'), 'B07546X3KK')
(7, u'R\xf6sle 12895 Knoblauchpresse mit Abstreifer, Edelstahl, 20 x 3.5 x 5.5 cm', (Decimal('49.95'), 'EUR'), 'B06XRYGZPB')
(8, 'Knoblauchpresse Knoblauchschneider Edelstahl Ingwerpresse Fleischwolf Crusher', (Decimal('15.99'), 'EUR'), 'B077TNYDCK')
(9, u'Fancathy knoblauchpresse,knoblauchpresse edelstahl,Knoblauchpresse Sp\xfclmaschinenfest Kitchenware Professionelle Edelstahl Knoblauchpresse (Blau)', (Decimal('12.99'), 'EUR'), 'B07BKZ7PCH')

Fazit

Mit der Python Amazon API lässt sich sehr viel anstellen. Ich habe Dir gezeigt wie Du die Amazon Python API installieren und einrichten kannst. Mit meinem erstes Programm führst Du Suchanfragen auf dem deutschen Marktplatz aus und gibt die Suchergebnisse für das Keyword „knoblauchpresse“ zurück. Es lassen sich noch Filter einstellen, z. B. nach Kategorie oder mehr Daten aus den Suchanfragen extrahieren (Bulletpoints, Gewicht, Bewertungen …), was ich Dir in einem späteren Beiträge zeigen werde.

Schreibe einen Kommentar