Einführung in die eBay -API mit Python The Finding API - Teil 2

Einführung in die eBay -API mit Python The Finding API - Teil 2

Im vorherigen Artikel haben wir gesehen. In diesem neuen Kapitel werden wir unsere erste Anfrage erstellen und unseren ersten Anruf mit Schwerpunkt auf der „Finding -API“ ausführen

In diesem Tutorial lernen Sie:

  • Was sind die möglichen Aufrufe von „Finden von API“?
  • Mit welchen Parametern können Sie Ihren Anruf anpassen?
  • Wie man eine Anfrage mit dem Python SDK erstellt;
  • Wie man einen API -Anruf ausführt;
Einführung in die eBay -API mit Python: Die Finding -API - Teil 2

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Betriebssystem agnostisch.
Software Git und Python3
Andere Kenntnis der Python -Programmiersprache und der grundlegenden objektorientierten Konzepte.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Der Finden API



Der Finden API ist die erste, die wir in dieser Reihe von Artikeln über programmgestützte Interaktion mit eBay unter Verwendung von Python und dem eBay Python SDK untersuchen. Diese API enthält Anrufe, die sowohl für Käufer als auch für Verkäufer sehr nützlich sein können, und bietet uns Zugriff auf die Funktionen der Ebay -Plattform.

Die Finding -API -Aufrufe

Das Folgende sind meiner Meinung nach die relevantesten Anrufe von der Finden API:

  • FindItemSadvanced - Lassen Sie uns komplexe Abfragen ausführen und Filter anwenden
  • FindItemsByCategory - Lassen Sie uns Artikel finden, die zu einer bestimmten Kategorie gehören
  • FindItemsByKeywords - Mit diesem Anruf können wir Elemente basierend auf Schlüsselwörtern finden
  • FindItemsByProduct - Mit diesem Anruf finden wir Elemente, die auf Kennungen wie ISBN, EAN, UPC und EPID basieren

Sie finden die vollständige Liste der verfügbaren Anrufe für die API finden auf der dedizierten Seite.
In diesem Tutorial werden wir uns jedoch auf die konzentrieren FindItemsByKeywords Forderung.



Bevor wir anfangen

Im vorherigen Artikel dieser Serie haben wir unsere Arbeitsumgebung eingerichtet. Von nun an gehe ich davon aus, dass Sie das eBay Python SDK korrekt installieren und Sie API -Schlüssel erstellt haben. Da arbeiten wir mit dem zusammen Finden API, wir können direkt an der Produktionsseite arbeiten.

Beginnen wir dann. Als erstes erstellen wir ein Verzeichnis als Basis unseres Projekts; Wir werden es (überraschend) "eBay" nennen:

$ mkdir eBay

In diesem Verzeichnis müssen wir unsere Anmeldeinformationen in der speichern Ebay.Yaml Datei, wie wir im vorherigen Artikel erläutert haben. Sie finden eine Vorlage dieser Datei im Stamm. Hier ist der Inhalt meiner Ebay.Yaml Datei, in der ich bereits meine Anmeldeinformationen eingegeben habe:

Ebay API -Konfigurationsdateiinhalt, wie Sie beobachten können API finden, ist der App ID Für unsere Produktionsumgebung.

Unser erster API -Anruf

Standardmäßig akzeptiert eBay die API -Anfrage und wird in Form von angegeben xml Strukturen: Was uns ermöglicht, auf objektorientierte Weise mit diesen Elementen zu interagieren, ist der Python SDK. Nachdem wir unsere Anmeldeinformationen vorhanden haben, können wir beginnen, unsere erste API -Anfrage zu erstellen. Erstellen Sie eine neue Datei und rufen Sie es an FindByKeywords.py, Im Inneren müssen wir als erstes die erforderlichen Module importieren:

#!/usr/bin/env python3 aus eBaysdk.Importverbindung finden 
Kopieren

Das nächste, was Sie tun müssen, ist, eine Instanz der initialisieren Verbindung Klasse, hier ist, wie wir es machen:

API = Verbindung (config_file = 'eBay.yaml ', sitId = "eBay-us")

Wir haben einige Parameter an den Konstruktor des Verbindung Klasse: Konfigurationsdatei, Und Webseitenadresse. Der erste ist erforderlich, um den Pfad zur Datei mit unseren Anmeldeinformationen anzugeben: Da der Wert stand. Die zweiten Argumente, die erforderlich sind, um die eBay -Landesstelle anzugeben, auf die die Anfrage hingewiesen werden sollte: "EBay-us" ist der Standard. Wenn ich beispielsweise meine Suche auf der italienischen Site durchführen wollte, hätte ich verwendet "EBay-it" stattdessen. Viele andere Parameter können übergeben werden, um die Standardkonfiguration zu optimieren. Zu wissen, dass unser Setup ausreicht. Lassen Sie uns weiter fortfahren.

Wir haben unsere Instanz der initialisiert Verbindung Klasse, jetzt müssen wir eine Anfrage erstellen, die in den API -Anruf aufgenommen wird. Dank des Python SDK können wir eine Anfrage mit a darstellen Wörterbuch, Angabe seiner Parameter mit Schlüsselwertpaaren:

Request = 'Keywords': 'Herr der Ringe',, 
Kopieren

Das obige ist die minimal mögliche Anfrage für die FindItemsByKeywords Rufen Sie an: Wir haben gerade die zu suchen der Schlüsselwörter angegeben. Das ist möglich, weil 'Schlüsselwörter' ist der einzige erforderliche Parameter für diesen Anruf.

Abhängig vom Anruf, den wir ausführen möchten, können wir viele andere Parameter verwenden, um unsere Anfrage zu verfeinern. Um genau alle verfügbaren Anforderungsparameter für einen bestimmten Anruf zu kennen, können Sie die ziemlich detaillierte eBay -Dokumentation dafür konsultieren.



Einschränkung unserer Suche mit einem Filter

Wir können eine Liste von Filtern in unserer Anfrage angeben, damit die Anzahl der zurückgegebenen Ergebnisse reduziert wird. Innerhalb der Anfrage die Itemfilter Der Schlüssel ist mit einem Array verbunden, das alle Filter enthält, von denen jede in Form eines Wörterbuchs ist, wobei die Name Der Schlüssel ist einer Zeichenfolge zugeordnet, die den Filternamen darstellt, und der Wert Man ist dem tatsächlichen Wert verbunden, der für den Filter verwendet werden sollte. Lassen Sie uns ein Beispiel sehen. Sagen Sie, wir möchten unserer Anfrage einen Filter hinzufügen, um unsere Suche nur auf „neue“ Elemente zu beschränken:

Request = 'Keywords': 'Herr der Ringe', 'itemFilter': ['Name': 'Zustand', 'Wert': 'neu'] 
Kopieren

Im obigen Beispiel haben wir die verwendet Zustand Filter, aber viele andere sind verfügbar. Zum Beispiel die Ausschluss Filter ist nützlich, um spezifische Verkäufer von den Ergebnissen auszuschließen, während die Versandkostenfrei eine, um die Suche nur auf Artikel zu beschränken, die mit kostenlosen Versand verkauft werden. Die Liste der Filter und deren möglichen Werte ist wirklich lang: Auch hier finden Sie alle, die die offizielle Dokumentation beraten.

Die Ergebnisse pagieren

Ein weiterer sehr nützlicher Parameter, den wir zu unserer Anfrage hinzufügen können, ist PaginationInput. Durch die Verwendung können wir ein gewünschtes Paginierungsformat angeben. Innerhalb der Anfrage die PaginationInput Der Schlüssel ist mit einem Wörterbuch verbunden, das selbst zwei Schlüssel enthält: Einträge Und Seitennummer.

Mit dem ersten können wir angeben, wie viele Ergebnisse wir „pro Seite“ erhalten möchten: nicht mehr als 100 Die Ergebnisse pro Seite werden unterstützt (dies ist auch der Standardwert), während das Minimum ist 1. Mit dem zweiten Element, Seitennummer, Wir können angeben, welche Seite wir in den Ergebnissen erhalten möchten.

Sagen Sie zum Beispiel, dass wir nicht mehr als 10 Ergebnisse pro Seite wollten und nur an der ersten Seite interessiert waren. Unsere Anfrage würde werden:

Request = 'Keywords': 'Herr der Ringe', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'EntrieSperPage: 10,', ' Pagenumber ': 1 
Kopieren

Eigentlich hätten wir weglassen können Seitennummer, Da sein Standardwert immer „1“ ist.

Sortieren der Ergebnisse

Ein weiterer sehr nützlicher Parameter, den wir zu unserer Anfrage hinzufügen können, ist Sortierreihenfolge. Mit diesem Parameter können wir eines der verfügbaren Sortierkriterien verwenden, um unsere Ergebnisse besser zu organisieren. Sagen Sie zum Beispiel, wir wollten unsere Ergebnisse nach Preis in aufsteigender Reihenfolge sortieren, um zuerst die günstigsten Artikel in den Ergebnissen enthalten zu haben:

Request = 'Keywords': 'Herr der Ringe', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'EntrieSperPage: 10,', ' Pagenumber ': 1,' Sorder ':' PricePlusshipPingLowest ' 
Kopieren

In diesem Fall haben wir verwendet PREISPLUSHIPPINGLOWEST Als Sortierreihenfolge werden die in den Ergebnissen enthaltenen Artikel nach dem Ergebnis der Summe ihres Preises und ihrer Versandgebühr in aufsteigender Reihenfolge sortiert. Genau wie Filter sind die verfügbaren Sortieraufträge zu viele, um hier gemeldet zu werden. Unter den anderen können wir benutzen Distanzenarest oder Endtimesoonest Die Ergebnisse nach Entfernung in aufsteigender Reihenfolge bzw. durch die engste Endzeit zu sortieren. Sie können alle möglichen Sortierkriterien finden, indem Sie diese Tabelle konsultieren.

Senden unserer Anfrage und erhalten Sie die Ergebnisse

Nachdem wir unsere Anfrage erstellt haben, müssen wir sie tatsächlich an eBay senden und die Ergebnisse erhalten. Um die erste Aufgabe zu erfüllen, verwenden wir die ausführen Methode auf unserer API Objekt, Angabe des Namens des Anrufs, den wir als erstes Argument verwenden möchten, und das Wörterbuch, das unsere Anfrage als zweites darstellt. Hier ist, was unser Drehbuch zu diesem Zeitpunkt in seiner Gesamtheit aussieht:



#!/usr/bin/env python3 aus eBaysdk.Importverbindung finden, wenn __name__ == '__main__': api = Verbindung (config_file = 'eBay.yaml ', debug = true, sitId = "eBay-us") request = ' keywords ':' lord of the rings ',' itemfilter ': [' name ':' condition ',' value ':' neu ' ], 'paginationInput': 'Entriederpage': 10, 'pageNumber': 1, 'Sorder': 'PricePlusshipPingLowest' response = api.Execute ('findItemsByKeywords', Anfrage) 
Kopieren

Unsere Ergebnisse werden zurückgegeben, und wir werden es mit dem verweisen Antwort Variable. Wir möchten sie jetzt organisieren, damit wir für jedes Ergebnis den Titel und den Preis in einem schönen Format auf dem Bildschirm angezeigt haben können, können wir eine einfache Schleife hinzufügen, um dieses Ergebnis zu erzielen:

für Element als Antwort.Antwort.Suchergebnis.Artikel: Print (f "Titel: Artikel.Titel, Preis: Artikel.SellingStatus.derzeitiger Preis.Wert") 
Kopieren

Wenn wir jetzt versuchen, das Skript zu starten, erhalten wir die folgenden Ergebnisse:



Titel: Lord of the Rings Der One Ring lotr Edelstahl Mode Frauen Manring SZ12, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring SZ13, Preis: 0.01 Titel: Lord of the Rings Der einzige Ring LOTR Edelstahl Mode Männer Frauen Ring Größe 9, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring SZ13, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring SZ11, Preis: 0.01 Titel: Lord of the Rings Der einzige Ring Lotr Edelstahl Mode Männer Frauen Ring size 7, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring SZ12, Preis: 0.01 Titel: Lord of the Rings Der einzige Ring LOTR Edelstahl Mode Männer Frauen Ring Größe 9, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring Größe8, Preis: 0.01 Titel: Herr der Ringe der einzige Ring LOTR Edelstahlmodische Frauen Frauen Ring SZ13, Preis: 0.01 

An diesem Punkt können Sie sich fragen: Wie kann ich die genaue Struktur der Ergebnisse kennen?? Es ist eine gute Frage, und Sie können eine Antwort haben, indem Sie das überprüfen xml Darstellung der Ausgabe einer Anrufanforderung, die Sie in der eBay -Dokumentation dem spezifischen Anruf gewidmet sind. Sie können den finden FindItemsByKeywords Durch die Folge dieses Links.

Schlussfolgerungen

Während wir im vorherigen Artikel darüber gesprochen haben, wie wir unsere Arbeitsumgebung einrichten, erhalten Sie unsere API -Schlüssel und installieren die Python SDK in diesem zweiten Teil unserer Artikelserie über eBay -APIs, die wir uns dem näherten, das API finden, und wir haben eine einfache Anfrage mit dem erstellt FindItemsByKeywords Forderung. Wir haben kurz gesehen.

Im nächsten Artikel werden wir unter den anderen Dingen unser Geschäft aufbauen und sehen, wie man das benutzt Handel API zum Erstellen und Hochladen eines Elements dazu. Zusammenfassend ist hier eine Zusammenfassung der offiziellen Dokumentation, auf die wir in diesem Artikel verwiesen wurden:

  • Dokumentation über die FindItemsByKeywords Forderung
  • Liste der verfügbaren Anforderungsfilter
  • Liste der verfügbaren Sortieraufträge
  • Liste der verfügbaren Anrufe für die API finden

Inhaltsverzeichnis

  • Teil 0

    Einführung

  • Teil I

    Tasten erhalten und auf die Sandbox zugreifen

  • TEIL II

    Die Finding -API

  • Teil III

    Die Handels -API

  • Teil IV

    Die Merchandising -API

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • So erstellen Sie ein Flatpak -Paket
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • Mastering -Bash -Skriptschleifen beherrschen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Wie man mit der Woocommerce -REST -API mit Python arbeitet
  • GDB -Debugging -Tutorial für Anfänger
  • So verwenden Sie ADB Android Debugg Bridge, um Ihr Android zu verwalten…