Introduction à l'API eBay avec Python L'API de recherche - Partie 2
- 1749
- 56
- Clara Nguyen
Dans l'article précédent, nous avons vu comment effectuer les étapes préliminaires pour préparer notre environnement de travail, créer un développeur eBay et un compte Sandbox et générer les clés et les informations d'identification nécessaires pour exécuter les appels d'API. Dans ce nouveau chapitre, nous créerons notre première demande et effectuerons notre premier appel en se concentrant sur «la recherche d'API»
Dans ce tutoriel, vous apprendrez:
- Quels sont les appels possibles de la «recherche»;
- Quels sont les paramètres que vous pouvez utiliser pour personnaliser votre appel;
- Comment créer une demande avec le SDK Python;
- Comment effectuer un appel API;
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Système d'exploitation agnostique. |
Logiciel | git et python3 |
Autre | Connaissance du langage de programmation Python et des concepts de base orientés objet. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Le Découverte API
Le Découverte
L'API est la première que nous explorons dans cette série d'articles sur interagir par programme avec eBay en utilisant Python et le SDK eBay Python. Cette API fournit des appels qui peuvent être très utiles à la fois pour les acheteurs et les vendeurs et nous donne accès aux capacités de recherche de plate-forme eBay, offrant un moyen plus rapide de récupérer et de manipuler les données par rapport aux techniques de grattage Web.
Les appels API de recherche
Voici, à mon avis, les appels les plus pertinents fournis par le Découverte
API:
- FindItemsAdvanced - effectuons des requêtes complexes et appliquons des filtres;
- FindItemsByCategory - Trouvez des articles appartenant à une catégorie spécifique;
- findItemsByKeywords - Avec cet appel, nous pouvons trouver des éléments basés sur les mots clés;
- FindItemsByProduct - Avec cet appel, nous pouvons trouver des éléments basés sur des identifiants comme ISBN, EAN, UPC et EPID;
Vous pouvez trouver la liste complète des appels disponibles pour le Trouver une API
dans la page dédiée.
Dans ce tutoriel, mais nous nous concentrerons sur le FindItemsByKeywords
appel.
Avant que nous commencions
Dans l'article précédent de cette série, nous avons mis en place notre environnement de travail, donc à partir de maintenant, je suppose que vous avez correctement installé le SDK eBay Python et vous avez créé des touches API. Puisque nous travaillons avec le Découverte
API, nous pouvons travailler directement sur le site de production.
Commençons, alors. En tant que première chose, nous créons un répertoire comme base de notre projet; Nous l'appellerons (étonnamment) «eBay»:
$ mkdir ebay
À l'intérieur de ce répertoire, nous avons besoin de stocker nos informations d'identification dans le eBay.yaml
dossier, comme nous l'avons discuté dans l'article précédent. Vous pouvez trouver un modèle de ce fichier à l'intérieur de la racine du référentiel GitHub que nous avons cloné. Voici le contenu de mon eBay.yaml
Fichier, dans lequel j'ai déjà entré mes informations d'identification:
Trouver une API
, est le Identifiant d'application
pour notre environnement de production. Notre premier appel API
Par défaut, eBay accepte la demande d'API et fournit sous la forme de xml
Structures: Ce qui nous rend possible d'interagir avec ces éléments d'une manière orientée objet, c'est le SDK Python. Maintenant que nous avons nos informations d'identification en place, nous pouvons commencer à créer notre première demande d'API. Créez un nouveau fichier et appelez-le FindByKeywords.py
, À l'intérieur, la première chose que nous devons faire est d'importer les modules nécessaires:
#!/ usr / bin / env python3 d'Ebaysdk.Trouver une connexion d'importation
Copie La prochaine chose à faire est d'initialiser une instance du Connexion
classe, voici comment nous le faisons:
api = connexion (config_file = 'ebay.yaml ', siteid = "ebay-us")
Nous avons transmis quelques paramètres au constructeur du Connexion
classe: config_file
, et ID du site
. Le premier est nécessaire pour spécifier le chemin d'accès au fichier contenant nos informations d'identification: car par défaut, sa valeur est la même de celle que nous avons fournie, nous aurions pu l'omettre. Les deuxième arguments qu'il est nécessaire pour spécifier le site du pays eBay La demande doit être indiquée: "Ebay-us"
est la valeur par défaut. Si je voulais effectuer ma recherche sur le site italien, par exemple, j'aurais utilisé "Ebay-it"
plutôt. De nombreux autres paramètres peuvent être transmis pour modifier la configuration par défaut, mais pour savoir que notre configuration est suffisante. Allons plus loin.
Nous avons initialisé notre instance du Connexion
classe, nous devons maintenant construire une demande, qui sera incluse dans l'appel de l'API. Grâce au SDK Python, nous pouvons représenter une demande avec un dictionnaire
, Spécification de ses paramètres avec des paires de valeurs clés:
demande = 'Mots-clés': «Seigneur des anneaux»,
Copie Ce qui précède est la demande minimale possible pour le FindItemsByKeywords
Appel: nous venons de spécifier les mots clés pour rechercher. C'est possible parce que 'mots clés'
est le seul paramètre requis pour cet appel.
Selon l'appel que nous voulons effectuer, nous pouvons utiliser de nombreux autres paramètres pour affiner notre demande. Pour connaître exactement tous les paramètres de demande disponibles pour un appel spécifique, vous pouvez consulter la documentation eBay assez détaillée pour cela.
Restreindre notre recherche avec un filtre
Nous pouvons spécifier une liste de filtres à l'intérieur de notre demande, afin que le nombre de résultats retournés soit réduit. À l'intérieur de la demande, le échangeur
La clé est associée à un tableau contenant tous les filtres, chacun sous la forme d'un dictionnaire, où le nom
La clé est associée à une chaîne représentant le nom du filtre et le valeur
L'un est associé à la valeur réelle qui devrait être utilisée pour le filtre. Voyons un exemple. Disons que nous voulons ajouter un filtre à notre demande, afin de restreindre notre recherche uniquement aux «nouveaux» éléments:
request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new']
Copie Dans l'exemple ci-dessus, nous avons utilisé le condition
filtre, mais beaucoup d'autres sont disponibles. Par exemple, le Excludeur
Le filtre est utile pour exclure les vendeurs spécifiques des résultats, tandis que le Expédition gratuite uniquement
un pour restreindre la recherche uniquement aux articles vendus avec la livraison gratuite. La liste des filtres et leurs valeurs possibles est vraiment longue: encore une fois, vous pouvez tous les trouver en consultant la documentation officielle.
Paginer les résultats
Un autre paramètre très utile que nous pouvons ajouter à notre demande est pagination
. En l'utilisant, nous pouvons spécifier un format de pagination souhaité. À l'intérieur de la demande, le pagination
La clé est associée à un dictionnaire, lui-même contenant deux clés: entrées
et numéro de page
.
Avec le premier, nous pouvons spécifier le nombre de résultats que nous voulons recevoir «par page»: pas plus que 100
Les résultats par page sont pris en charge (il s'agit également de la valeur par défaut), tandis que le minimum est 1
. Avec le deuxième élément, numéro de page
, Nous pouvons spécifier la page que nous voulons recevoir dans les résultats.
Disons que, par exemple, nous ne voulions pas plus de 10 résultats par page et que nous ne nous sommes intéressés que par la première page, notre demande deviendrait:
request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entrées pourpage': 10, ' PageNumber ': 1
Copie En fait, nous aurions pu omettre numéro de page
, Puisque sa valeur par défaut est toujours «1».
Trier les résultats
Un autre paramètre très utile que nous pouvons ajouter à notre demande, est ordre de tri
. Avec ce paramètre, nous pouvons utiliser l'un des critères de tri disponibles pour mieux organiser nos résultats. Disons par exemple, nous voulions trier nos résultats par prix dans l'ordre croissant, afin d'avoir les articles les moins chers inclus dans les résultats d'abord:
request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entrées pourpage': 10, ' PageNumber ': 1,' SORSORDER ':' PricePluShippinglowest '
Copie Dans ce cas, nous avons utilisé PricePluShippinglowest
En guise de tri, les articles inclus dans les résultats seront donc triés par ordre croissant par le résultat de la somme de leur prix et de leurs frais d'expédition. Tout comme les filtres, les commandes de tri disponibles sont trop nombreuses pour être signalées ici. Parmi les autres, nous pouvons utiliser Distancinearest
ou EndtimeSoonst
Pour trier les résultats par distance dans l'ordre croissant, ou par le plus proche temps respectivement. Vous pouvez trouver tous les critères de tri possibles en consultant ce tableau.
Envoi de notre demande et obtenir les résultats
Maintenant que nous avons fini de créer notre demande, nous devons réellement l'envoyer à eBay et obtenir les résultats. Pour accomplir la première tâche, nous utilisons le exécuter
Méthode sur notre API
objet, spécifiant le nom de l'appel que nous voulons utiliser comme premier argument, et le dictionnaire représentant notre demande comme la seconde. Voici ce que notre script ressemble dans son intégralité à ce stade:
#!/ usr / bin / env python3 d'Ebaysdk.Rechercher la connexion d'importation si __name__ == '__main__': api = connexion (config_file = 'ebay.yaml ', debug = true, siteID = "ebay-us") request = ' keywords ':' seigneur des anneaux ',' itemFilter ': [' name ':' condition ',' value ':' new ' ], 'PaginationInput': 'EntriesPerpage': 10, 'PageNumber': 1, 'SORTORDER': 'PricePluShippinglowest' Response = API.EXECUTE ('FindItemsByKeywords', demande)
Copie Nos résultats seront retournés et nous le référenterons avec le réponse
variable. Nous voulons maintenant les organiser, de sorte que pour chaque résultat, nous pouvons afficher le titre et le prix affichés à l'écran dans un bon format, nous pouvons ajouter une boucle simple pour accomplir ce résultat:
pour l'article en réponse.répondre.résultat de la recherche.Élément: Print (F "Titre: article.titre, prix: article.vendeurs.prix actuel.valeur")
Copie Si nous essayons maintenant de lancer le script, nous obtenons les résultats suivants:
Titre: Lord of the Rings The One Ring Lotr Fashion Fashion Fashion Women Manring SZ12, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size9, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Sz11, Prix: 0.01 Titre: Lord of the Rings The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size7, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ12, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size9, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size8, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01
À ce stade, vous pouvez demander: comment puis-je connaître la structure exacte des résultats? C'est une bonne question, et vous pouvez avoir une réponse en vérifiant le xml
représentation de la sortie d'une demande d'appel que vous pouvez dans la documentation eBay dédiée à l'appel spécifique. Vous pouvez trouver celui sur FindItemsByKeywords
en suivant ce lien.
Conclusions
Dans l'article précédent, nous avons expliqué comment configurer notre environnement de travail, obtenir nos clés d'API et installer le SDK Python, dans cette deuxième partie de notre série d'articles sur les API eBay, nous avons approché le Trouver une API
, Et nous avons construit une demande simple en utilisant le FindItemsByKeywords
appel. Nous avons vu brièvement comment ajouter des filtres et spécifier une commande de tri à notre demande et comment travailler avec les résultats retournés.
Dans le prochain article, entre autres choses, nous construire notre magasin et nous verrons comment utiliser le Commerce
API pour créer et télécharger un élément. En conclusion, voici un récapitulatif de la documentation officielle que nous avons référencée dans cet article:
- Documentation sur le
FindItemsByKeywords
appel - Liste des filtres de demande disponibles
- Liste des commandes de tri disponibles
- Liste des appels disponibles pour le
Trouver une API
Table des matières
- Partie 0
Introduction
- Partie I
Obtenir des clés et accéder au bac à sable
- DEUXIEME PARTIE
L'API de découverte
- Partie III
L'API commerciale
- Partie IV
L'API de merchandising
Tutoriels Linux connexes:
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à installer sur Ubuntu 20.04
- Comment créer un package Flatpak
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Comment configurer un serveur OpenVPN sur Ubuntu 20.04
- Masterring Bash Script Loops
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Comment travailler avec l'API WooCommerce REST avec Python
- Tutoriel de débogage GDB pour les débutants
- Comment utiliser ADB Android Debug Bridge pour gérer votre Android…
- « Introduction à la doctrine ORM et au motif de mappeur de données en PHP
- Introduction à l'API eBay avec Python L'API Merchandising - Partie 4 »