Wprowadzenie do API eBay z Pythonem API Finding - Część 2

Wprowadzenie do API eBay z Pythonem API Finding - Część 2

W poprzednim artykule widzieliśmy, jak wykonać wstępne kroki w celu przygotowania naszego środowiska pracy, utworzenia programistów eBay i konta piaskownicy oraz wygenerowania klawiszy i poświadczeń potrzebnych do wykonywania połączeń API. W tym nowym rozdziale utworzymy naszą pierwszą żądanie i wykonamy nasze pierwsze połączenie, koncentrując się na „API znajdowania”

W tym samouczku nauczysz się:

  • Jakie są możliwe wywołania „znajdowania interfejsu API”;
  • Jakie są parametry, których możesz użyć, aby dostosowywać Twoim połączeniem;
  • Jak zbudować prośbę z Python SDK;
  • Jak wykonać połączenie API;
Wprowadzenie do API eBay z Pythonem: The Finding API - Część 2

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System System operacyjny agnostyk.
Oprogramowanie Git i Python3
Inny Znajomość języka programowania Pythona i podstawowych pojęć zorientowanych na obiekt.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Odkrycie API



Odkrycie API jest pierwszym, który badamy w tej serii artykułów na temat programistycznych interakcji z eBay za pomocą Pythona i eBay Python SDK. Ten interfejs API zawiera połączenia, które mogą być bardzo przydatne zarówno dla kupujących, jak i sprzedawców, i zapewnia nam dostęp do możliwości wyszukiwania platformy eBay, zapewniając szybszy sposób pobierania i manipulowania danymi w porównaniu z technikami skrobania internetowego.

Odnalezienie API wywołuje

Poniżej znajdują się, moim zdaniem, najbardziej odpowiednie połączenia dostarczone przez Odkrycie API:

  • FindEmEmsAdvanced - Wykonajmy złożone zapytania i zastosuj filtry;
  • FindEmsByCategory - Znajdźmy artykuły należące do określonej kategorii;
  • FindEMEMSByKeywords - Dzięki temu połączeniu możemy znaleźć elementy na podstawie słów kluczowych;
  • FindEMEMSByProduct - Dzięki temu połączeniu możemy znaleźć elementy oparte na identyfikatorach takich jak ISBN, EAN, UPC i EPID;

Można znaleźć pełną listę dostępnych wezwań do Znalezienie API Na stronie dedykowanej.
W tym samouczku skupimy się jednak na FindEmsBykeywords dzwonić.



Zanim zaczniemy

W poprzednim artykule z tej serii konfigurujemy nasze środowisko pracy, dlatego odtąd zakładam, że poprawnie zainstalowałeś SDK Python eBay i stworzyłeś klucze API. Ponieważ pracujemy z Odkrycie API, możemy pracować bezpośrednio na stronie produkcyjnej.

Zacznijmy wtedy. Jako pierwszą rzeczą tworzymy katalog jako podstawę naszego projektu; (Zaskakująco) nazwiemy to „eBay”:

$ mkdir eBay

W tym katalogu potrzebujemy przechowywać nasze poświadczenia w eBay.Yaml Plik, jak omówiliśmy w poprzednim artykule. Możesz znaleźć szablon tego pliku w korzeni repozytorium GitHub, który sklonowaliśmy. Oto treść mojego eBay.Yaml Plik, w którym już wpisałem swoje poświadczenia:

Treść pliku konfiguracyjnego API eBay, jak można obserwować, wszystko, co musimy podać w sekcji poświęconej Znalezienie API, jest Identyfikator aplikacji dla naszego środowiska produkcyjnego.

Nasz pierwszy wezwanie API

Domyślnie eBay przyjmuje żądanie API i podaje w formie XML Struktury: To, co umożliwia nam interakcja z tymi elementami w sposób zorientowany na obiekt, jest Python SDK. Teraz, gdy mamy nasze poświadczenia, możemy zacząć tworzyć nasze pierwsze żądanie API. Utwórz nowy plik i zadzwoń FindbyKeywords.py, Wewnątrz pierwszą rzeczą, którą musimy zrobić, jest zaimportowanie potrzebnych modułów:

#!/usr/bin/env python3 z eBaysdk.Znalezienie połączenia importu 
Kopiuj

Następną rzeczą do zainicjowania instancji Połączenie klasa, oto jak to robimy:

API = połączenie (config_file = 'eBay.yaml ', siteid = "eBay-us")

Przekazaliśmy kilka parametrów konstruktorowi Połączenie klasa: Config_file, I Identyfikator witryny. Pierwszy jest potrzebny do określenia ścieżki do pliku zawierającego nasze poświadczenia: ponieważ domyślnie jego wartość jest taka sama z tego, który dostarczyliśmy, moglibyśmy to pominąć. Drugie argumenty, które jest potrzebne do określenia witryny eBay Country, należy wskazać: „EBay-US” jest domyślnie. Gdybym chciał na przykład przeprowadzić moje wyszukiwanie na stronie włoskiej, użyłbym „EBay-it” Zamiast. Wiele innych parametrów można przekazać w celu dostosowania domyślnej konfiguracji, ale dla wiedzy nasza konfiguracja jest wystarczająca. Idźmy dalej.

Zainicjowaliśmy naszą instancję Połączenie klasa, teraz musimy zbudować żądanie, które zostanie uwzględnione w wywołaniu API. Dzięki Python SDK możemy przedstawić prośbę z słownik, Określanie jego parametrów za pomocą par kluczowych:

żądanie = „Słowa kluczowe”: „Władca pierścieni”, 
Kopiuj

Powyższe jest minimalnym możliwym żądaniem dla FindEmsBykeywords Zadzwoń: Właśnie określaliśmy słowa kluczowe do wyszukiwania. Jest to możliwe, ponieważ 'słowa kluczowe' jest jedynym wymaganym parametrem tego połączenia.

W zależności od połączenia, które chcemy wykonać, możemy użyć wielu innych parametrów do udoskonalenia naszego żądania. Aby poznać dokładnie wszystkie dostępne parametry żądania konkretnego połączenia, możesz zapoznać się z dość szczegółową dokumentacją eBay dla tego.



Ograniczanie naszego wyszukiwania filtrem

Możemy określić listę filtrów w naszym żądaniu, aby liczba zwróconych wyników została zmniejszona. Wewnątrz żądania, Filter item Klucz jest powiązany z tablicą zawierającą wszystkie filtry, każdy z nich w postaci słownika, w którym nazwa klucz jest powiązany z ciągiem reprezentującym nazwę filtra i wartość Jeden jest powiązany z rzeczywistą wartością, jaką należy użyć dla filtra. Zobaczmy przykład. Powiedzmy, że chcemy dodać filtr do naszego żądania, aby ograniczyć nasze wyszukiwanie tylko do „nowych” elementów:

żądanie = „Słowa kluczowe”: „Władca pierścieni”, „itemFilter”: [„name”: „warunek”, „wartość”: „nowy”] 
Kopiuj

W powyższym przykładzie użyliśmy stan filtr, ale wiele innych jest dostępnych. Na przykład Wykluczona Filtr jest przydatny, aby wykluczyć określonych sprzedawców z wyników, podczas gdy Tylko darmowa wysyłka jeden do ograniczenia wyszukiwania tylko do przedmiotów sprzedawanych za pomocą bezpłatnej wysyłki. Lista filtrów i ich możliwe wartości jest naprawdę długa: znowu można znaleźć wszystkie konsultacje z oficjalną dokumentacją.

Paginowanie wyników

Kolejnym bardzo przydatnym parametrem, który możemy dodać do naszego żądania, jest to paginationInput. Używając go, możemy określić pożądany format paginacji. Wewnątrz żądania, paginationInput Klucz jest powiązany ze słownikiem, zawierającym dwa klucze: Wpis DepperPage I numer strony.

Z pierwszym możemy określić, ile wyników chcemy otrzymać „na stronę”: nie więcej niż 100 Wyniki na stronę są obsługiwane (jest to również wartość domyślna), podczas gdy minimum jest 1. Z drugim elementem, numer strony, Możemy określić, jaką stronę chcemy otrzymać w wynikach.

Powiedzmy na przykład, że chcieliśmy nie więcej niż 10 wyników na stronę i byliśmy zainteresowani tylko na pierwszej stronie, nasza prośba stałaby się:

żądanie = „Słowa kluczowe”: „Władca pierścieni”, „itemFilter”: [„name”: „warunek”, „wartość”: „new”], „paginationInput”: 'presriesperpage': 10, ' pagenumber ': 1 
Kopiuj

Właściwie moglibyśmy pominąć numer strony, Ponieważ jego domyślna wartość wynosi zawsze „1”.

Sortowanie wyników

Kolejnym bardzo przydatnym parametrem, który możemy dodać do naszego żądania, jest to SortOrder. Za pomocą tego parametru możemy użyć jednego z dostępnych kryteriów sortowania, aby lepiej zorganizować nasze wyniki. Powiedzmy na przykład, że chcieliśmy sortować nasze wyniki według ceny w kolejności rosnącej, więc najpierw mieć najtańsze przedmioty zawarte w wynikach:

żądanie = „Słowa kluczowe”: „Władca pierścieni”, „itemFilter”: [„name”: „warunek”, „wartość”: „new”], „paginationInput”: 'presriesperpage': 10, ' pagenumber ': 1, „sortOrder”: „Priceplusshippinglowest” 
Kopiuj

W tym przypadku użyliśmy PriceplusshippingLoWest Zamówienie sortowania, więc pozycje zawarte w wynikach, zostaną sortowane w kolejności rosnącej w wyniku sumy ceny i opłaty za wysyłkę. Podobnie jak filtry, dostępne zamówienia sortowania są zbyt wiele, aby można je było zgłosić. Między innymi możemy użyć Zestaw Lub EndTimesoONest Aby sortować wyniki według odległości w kolejności rosnącej lub odpowiednio w najbliższym czasie końcowym. Możesz znaleźć wszystkie możliwe kryteria sortowania, konsultując się z tą tabelą.

Wysyłanie naszej prośby i uzyskanie wyników

Teraz, gdy skończyliśmy tworzenie naszej prośby, musimy wysłać ją do eBay i uzyskać wyniki. Aby wykonać pierwsze zadanie, używamy wykonać Metoda na naszym API Obiekt, określając nazwę połączenia, którego chcemy użyć jako pierwszego argumentu, oraz słownik reprezentujący nasze żądanie jako drugie. Oto, co w tym momencie wygląda nasz skrypt w całości:



#!/usr/bin/env python3 z eBaysdk.Znalezienie połączenia importu, jeśli __name__ == '__main__': api = connection (config_file = 'eBay.yaml ', debug = true, siteId = "eBay-us") request = ' słowami kluczowymi ': „lord of the Purnings”, „itemFilter”: [„name”: „warunek”, „wartość”: „nowy” ], „paginationInput”: 'presriesperpage': 10, „pagenumber”: 1, 'sortOrder': 'priceplusshippinglowest' response = API.Execute („FindEMentBykeywords”, żądanie) 
Kopiuj

Nasze wyniki zostaną zwrócone i będziemy odwoływać się do odpowiedź zmienny. Chcemy teraz je zorganizować, aby dla każdego wyniku mogliśmy mieć tytuł i cenę wyświetlaną na ekranie w ładnym formacie, możemy dodać prostą pętlę, aby osiągnąć ten wynik:

dla pozycji w odpowiedzi.odpowiedź.wynik wyszukiwania.Pozycja: print (f "tytuł: item.tytuł, cena: item.Sprzedającystatus.aktualna cena.wartość") 
Kopiuj

Jeśli teraz spróbujemy uruchomić skrypt, uzyskujemy następujące wyniki:



Tytuł: Lord of the Rings The One Ring Lotr Stali Stal Fashion Women Manring SZ12, cena: 0.01 Tytuł: Lord of the Pierścieni The One Ring Lotr Stael Stael Fashion Men Mężczyzna Kobiety Ring Sz13, Cena: 0.01 Tytuł: Lord of the Rings The One Ring Lotr Stael Stael Mass Men Men Pierścień Rozmiar 9, Cena: 0.01 Tytuł: Lord of the Pierścieni The One Ring Lotr Stael Stael Fashion Men Mężczyzna Kobiety Ring Sz13, Cena: 0.01 Tytuł: Lord of the Rings The One Ring Lotr Stael Stael Fashion Men Mężczyźni Kobiety Ring Sz11, cena: 0.01 Tytuł: Lord of the Pierścieni The One Ring Lotr Stael Stael Fashion Men Mężczyźni Kobiety Pierścień Rozmiar 7, Cena: 0.01 Tytuł: Lord of the Rings The One Ring Lotr Stael Stael Fashion Men Men Ring SZ12, Cena: 0.01 Tytuł: Lord of the Rings The One Ring Lotr Stael Stael Mass Men Men Pierścień Rozmiar 9, Cena: 0.01 Tytuł: Lord of the Rings The One Ring Lotr Stael Stael Mass Men Men Pierścień Rozmiar 8, Cena: 0.01 Tytuł: Lord of the Pierścieni The One Ring Lotr Stael Stael Fashion Men Mężczyzna Kobiety Ring Sz13, Cena: 0.01 

W tym momencie możesz zapytać: jak mogę znać dokładną strukturę wyników? To dobre pytanie i możesz uzyskać odpowiedź, sprawdzając XML reprezentacja wyników żądania połączenia, które można w dokumentacji eBay poświęconej konkretnym połączeniu. Możesz znaleźć ten o FindEmsBykeywords Postępując zgodnie z tym linkiem.

Wnioski

W poprzednim artykule rozmawialiśmy o tym, jak skonfigurować nasze środowisko pracy, uzyskać nasze klucze API i zainstalować Python SDK, w drugiej części naszych serii artykułów na temat interfejsów API eBay podeszliśmy do Znalezienie API, i zbudowaliśmy proste żądanie za pomocą FindEmsBykeywords dzwonić. Krótko widzieliśmy, jak dodać filtry i określić kolejność sortowania do naszego żądania i jak pracować z zwróconymi wynikami.

W następnym artykule, między innymi, zbudujemy nasz sklep i zobaczymy, jak korzystać z Handlowy API, aby utworzyć i przesłać do niego element. Podsumowując tutaj podsumowanie oficjalnej dokumentacji, do których wspominaliśmy w tym artykule:

  • Dokumentacja o FindEmsBykeywords dzwonić
  • Lista dostępnych filtrów żądań
  • Lista dostępnych zamówień sortowania
  • Lista dostępnych wezwań do Znalezienie API

Spis treści

  • Część 0

    Wstęp

  • Część I

    Uzyskanie kluczy i dostęp do piaskownicy

  • CZĘŚĆ DRUGA

    API znalezienia

  • Część III

    API handlowe

  • Część IV

    Merchandising API

Powiązane samouczki Linux:

  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Jak utworzyć pakiet FlatPak
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Jak pracować z WooCommerce Rest API z Pythonem
  • Samouczek debugowania GDB dla początkujących
  • Jak korzystać z ADB Android Debug Bridge do zarządzania Androidem…