Introducción a la API de eBay con Python the Finding API - Parte 2
- 2776
- 758
- Sra. Lorena Sedillo
En el artículo anterior, vimos cómo realizar los pasos preliminares para preparar nuestro entorno de trabajo, crear un desarrollador de eBay y una cuenta de Sandbox y generar las claves y credenciales necesarias para ejecutar llamadas API. En este nuevo capítulo crearemos nuestra primera solicitud y realizaremos nuestra primera llamada centrada en la "API de búsqueda"
En este tutorial aprenderás:
- ¿Cuáles son las posibles llamadas de "API de búsqueda"?
- ¿Cuáles son los parámetros que puede usar para personalizarlo?
- Cómo construir una solicitud con el Python SDK;
- Cómo realizar una llamada API;
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | Sistema operativo agnóstico. |
Software | git y python3 |
Otro | Conocimiento del lenguaje de programación de Python y de los conceptos básicos orientados a objetos. |
Convenciones | # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominiops - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado |
El Hallazgo API
El Hallazgo
API es la primera que exploramos en esta serie de artículos sobre interactuar programáticamente con eBay mediante el uso de Python y el eBay Python SDK. Esta API proporciona llamadas que pueden ser muy útiles tanto para compradores como para vendedores y nos proporcionan acceso a las capacidades de búsqueda de la plataforma de eBay, proporcionando una forma más rápida de recuperar y manipular datos en comparación con las técnicas de raspado web.
Las llamadas de la API de búsqueda
Las siguientes son, en mi opinión, las llamadas más relevantes proporcionadas por el Hallazgo
API:
- FindItemSAdVanced: realicemos consultas complejas y apliquemos filtros;
- FindItemsByCategory: encontremos artículos que pertenecen a una categoría específica;
- finditemsbykeywords: con esta llamada podemos encontrar elementos basados en palabras clave;
- FindItemsbyProduct: con esta llamada podemos encontrar elementos basados en identificadores como ISBN, EAN, UPC y EPID;
Puede encontrar la lista completa de llamadas disponibles para el Encontrar API
En la página dedicada.
En este tutorial, sin embargo, nos centraremos en el finditemsbykeywords
llamar.
Antes de que comencemos
En el artículo anterior de esta serie, configuramos nuestro entorno de trabajo, por lo tanto, a partir de ahora asumiré que ha instalado correctamente el SDK de eBay Python y ha creado las teclas API. Dado que estamos trabajando con el Hallazgo
API, podemos trabajar directamente en el sitio de producción.
Comencemos, entonces. Como lo primero, creamos un directorio como la base de nuestro proyecto; (sorprendentemente) lo llamaremos "eBay":
$ mkdir ebay
Dentro de este directorio, necesitamos almacenar nuestras credenciales en el eBay.yaml
Archivo, como discutimos en el artículo anterior. Puede encontrar una plantilla de este archivo dentro de la raíz del repositorio de GitHub que clonamos. Aquí está el contenido de mi eBay.yaml
Archivo, en el que ya he ingresado mis credenciales:
Encontrar API
, es el ID de aplicación
para nuestro entorno de producción. Nuestra primera llamada de API
Por defecto, eBay acepta la solicitud de API y proporciona en forma de xml
Estructuras: Lo que nos hace posible interactuar con esos elementos de manera orientada a objetos es el Python SDK. Ahora que tenemos nuestras credenciales en su lugar, podemos comenzar a crear nuestra primera solicitud de API. Crear un archivo nuevo y llamarlo findbykeywords.py
, Dentro de esto, lo primero que debemos hacer es importar los módulos necesarios:
#!/usr/bin/env python3 de eBaysdk.Encontrar la conexión de importación
Copiar Lo siguiente que debe hacer es inicializar una instancia del Conexión
clase, así es como lo hacemos:
api = conexión (config_file = 'ebay.Yaml ', SiteId = "eBay-US")
Pasamos algunos parámetros al constructor del Conexión
clase: archivo de configuración
, y Identificación del sitio
. El primero es necesario para especificar la ruta al archivo que contiene nuestras credenciales: ya que, por defecto, su valor es el mismo del que proporcionamos, podríamos haber omitido. Los segundos argumentos que se necesita para especificar el sitio del país de eBay, se debe señalar la solicitud: "EBay-us"
es el valor predeterminado. Si quisiera realizar mi búsqueda en el sitio italiano, por ejemplo, habría usado "EBay-it"
en cambio. Se pueden pasar muchos otros parámetros para ajustar la configuración predeterminada, pero para saber que nuestra configuración es suficiente. Avanzemos más.
Inicializamos nuestra instancia del Conexión
clase, ahora necesitamos crear una solicitud, que se incluirá en la llamada API. Gracias a Python SDK, podemos representar una solicitud con un diccionario
, especificando sus parámetros con pares de valor clave:
request = 'Palabras clave': 'Señor de los anillos',
Copiar Lo anterior es la solicitud mínima posible para el finditemsbykeywords
Llame: Acabamos de especificar las palabras clave para buscar. Esto es posible porque 'Palabras clave'
¿Es el único parámetro requerido para esta llamada?.
Dependiendo de la llamada que deseamos realizar, podemos usar muchos otros parámetros para refinar nuestra solicitud. Para saber exactamente todos los parámetros de solicitud disponibles para una llamada específica, puede consultar la documentación de eBay bastante detallada para ello.
Restringir nuestra búsqueda con un filtro
Podemos especificar una lista de filtros dentro de nuestra solicitud, para que se reduzca el número de resultados devueltos. Dentro de la solicitud, el itemfilter
La clave se asocia con una matriz que contiene todos los filtros, cada uno de ellos en forma de un diccionario, donde el nombre
La tecla se asocia con una cadena que representa el nombre del filtro y el valor
uno está asociado con el valor real que debe usarse para el filtro. Veamos un ejemplo. Digamos que queremos agregar filtro a nuestra solicitud, para restringir nuestra búsqueda solo a los elementos "nuevos":
request = 'Palabras clave': 'Señor de los anillos', 'itemFilter': ['nombre': 'condición', 'valor': 'nuevo']
Copiar En el ejemplo anterior usamos el condición
filtrar, pero muchos otros están disponibles. Por ejemplo, el Excluido
El filtro es útil para excluir vendedores específicos de los resultados, mientras que el Sólo envío gratis
uno para restringir la búsqueda solo a los artículos vendidos con envío gratis. La lista de filtros y sus posibles valores es realmente larga: nuevamente, puede encontrarlos a todos consultando la documentación oficial.
Pagando los resultados
Otro parámetro muy útil que podemos agregar a nuestra solicitud es PaginationInput
. Al usarlo podemos especificar un formato de paginación deseado. Dentro de la solicitud, el PaginationInput
La clave está asociada con un diccionario, que contiene dos claves: entrada
y número de página
.
Con el primero podemos especificar cuántos resultados queremos recibir "por página": no más que 100
Se admiten los resultados por página (este también es el valor predeterminado), mientras que el mínimo es 1
. Con el segundo elemento, número de página
, Podemos especificar qué página queremos recibir en los resultados.
Digamos, por ejemplo, que no queríamos más de 10 resultados por página y solo estábamos interesados en la primera página, nuestra solicitud se convertiría en:
request = 'Palabras clave': 'Señor de los anillos', 'itemFilter': ['name': 'condición', 'valor': 'nuevo'], 'paginationInput': 'EntriesPerPage': 10, ' PageNumber ': 1
Copiar En realidad podríamos haber omitido número de página
, Dado que su valor predeterminado es siempre "1".
Clasificando los resultados
Otro parámetro muy útil que podemos agregar a nuestra solicitud, es Orden de clasificación
. Con este parámetro podemos usar uno de los criterios de clasificación disponibles para organizar mejor nuestros resultados. Digamos, por ejemplo, queríamos ordenar nuestros resultados por precio en orden ascendente, para que primero se incluyan los artículos más baratos en los resultados:
request = 'Palabras clave': 'Señor de los anillos', 'itemFilter': ['name': 'condición', 'valor': 'nuevo'], 'paginationInput': 'EntriesPerPage': 10, ' PageNumber ': 1,' SortOrder ':' PrickPlusShippingLowest '
Copiar En este caso usamos PricdeplusshippingLowest
Como orden de clasificación, por lo que los artículos incluidos en los resultados, se clasificarán en orden ascendente por resultado de la suma de su precio y su tarifa de envío. Al igual que los filtros, las órdenes de clasificación disponibles son demasiadas para informarse aquí. Entre los demás podemos usar Distancineearest
o EndTimesOnest
para ordenar los resultados por distancia en orden ascendente, o por el tiempo final más cercano respectivamente. Puede encontrar todos los criterios de clasificación posibles consultando esta tabla.
Enviar nuestra solicitud y obtener los resultados
Ahora que hemos terminado de crear nuestra solicitud, debemos enviarla a eBay y obtener los resultados. Para lograr la primera tarea, usamos el ejecutar
método en nuestro API
objeto, especificando el nombre de la llamada que queremos usar como primer argumento, y el diccionario que representa nuestra solicitud como la segunda. Esto es lo que parece nuestro guión en su totalidad en este punto:
#!/usr/bin/env python3 de eBaysdk.Encontrar conexión de importación si __name__ == '__main__': api = Connection (config_file = 'ebay.yaml ', debug = true, siteId = "eBay-us") request = ' Palabras clave ':' Señor de los anillos ',' itemFilter ': [' nombre ':' condición ',' valor ':' nuevo '' ], 'PaginationInput': 'EntriesPerPage': 10, 'PageNumber': 1, 'SortOrder': 'PrickPlusShippingLowest' Respuesta = API.ejecutar ('finditemsbykeywords', solicitud)
Copiar Nuestros resultados serán devueltos, y lo haremos referencia con el respuesta
variable. Ahora queremos organizarlos, de modo que para cada resultado podamos tener el título y el precio que se muestran en la pantalla en un formato agradable, podemos agregar un bucle simple para lograr este resultado:
para el ítem en respuesta.responder.resultado de búsqueda.Elemento: print (f "Título: Artículo.Título, precio: artículo.venderstatus.precio actual.valor")
Copiar Si ahora intentamos iniciar el script, obtenemos los siguientes resultados:
Título: Lord of the Rings The One Ring Lotr de acero inoxidable Mujeres Manring SZ12, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Mujeres SZ13, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Mujeres Tamaño de anillo9, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Mujeres SZ13, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr Acero inoxidable Moda Mujeres Mujeres Sz11, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Size7, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr Acero inoxidable Moda Mujeres Mujeres SZ12, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Mujeres Tamaño de anillo9, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Tamaño de anillo 8, Precio: 0.01 Título: Lord of the Rings The One Ring Lotr de acero inoxidable Moda Mujeres Mujeres SZ13, Precio: 0.01
En este punto, puede preguntar: ¿cómo puedo saber la estructura exacta de los resultados?? Es una buena pregunta, y puedes tener una respuesta revisando el xml
Representación de la salida de una solicitud de llamada que puede en la documentación de eBay dedicada a la llamada específica. Puedes encontrar el de finditemsbykeywords
Siguiendo este enlace.
Conclusiones
Mientras que en el artículo anterior hablamos sobre cómo configurar nuestro entorno de trabajo, obtener nuestras claves API e instalar el SDK de Python, en esta segunda parte de nuestra serie de artículos sobre las API de eBay nos acercamos a los Encontrar API
, y creamos una solicitud simple usando el finditemsbykeywords
llamar. Vimos brevemente cómo agregar filtros y especificar una orden de clasificación a nuestra solicitud y cómo trabajar con los resultados devueltos.
En el próximo artículo, entre las otras cosas, construiremos nuestra tienda y veremos cómo usar el Comercio
API para crear y cargarle un elemento. En conclusión aquí hay un resumen de la documentación oficial a la que hacemos referencia en este artículo:
- Documentación sobre el
finditemsbykeywords
llamar - Lista de filtros de solicitud disponibles
- Lista de pedidos de clasificación disponibles
- Lista de llamadas disponibles para el
Encontrar API
Tabla de contenidos
- Parte 0
Introducción
- Parte I
Obtener llaves y acceder al sandbox
- PARTE II
La api de hallazgo
- Parte III
La API comercial
- Parte IV
La API de comercialización
Tutoriales de Linux relacionados:
- Una introducción a la automatización, herramientas y técnicas de Linux
- Cosas para instalar en Ubuntu 20.04
- Cómo crear un paquete Flatpak
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Cómo configurar un servidor OpenVPN en Ubuntu 20.04
- Mastering Bash Script Loops
- Mint 20: Mejor que Ubuntu y Microsoft Windows?
- Cómo trabajar con la API REST de WooCommerce con Python
- Tutorial de depuración de GDB para principiantes
- Cómo usar ADB Android Debug Bridge para administrar su Android ..
- « Introducción a la doctrina ORM y el patrón de mapeador de datos en PHP
- Introducción a la API de eBay con Python The Merchandising API - Parte 4 »