Introdução à API do eBay com Python A API de Finding - Parte 2

Introdução à API do eBay com Python A API de Finding - Parte 2

No artigo anterior, vimos como executar as etapas preliminares para preparar nosso ambiente de trabalho, criar um desenvolvedor do eBay e uma conta de sandbox e gerar as chaves e as credenciais necessárias para executar chamadas de API. Neste novo capítulo, criaremos nossa primeira solicitação e executaremos nossa primeira chamada com foco na “API de busca”

Neste tutorial, você aprenderá:

  • Quais são as possíveis chamadas de “API” possível;
  • Quais são os parâmetros que você pode usar para personalizar que você ligue;
  • Como criar um pedido com o Python SDK;
  • Como executar uma chamada de API;
Introdução à API do eBay com Python: A API de Finding - Parte 2

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Sistema Operacional Agnóstico.
Programas Git e Python3
Outro Conhecimento da linguagem de programação python e dos conceitos básicos orientados a objetos.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

O Encontrando API



O Encontrando A API é a primeira que exploramos nesta série de artigos sobre interagir programaticamente com o eBay usando o Python e o eBay Python SDK. Esta API fornece chamadas que podem ser muito úteis para compradores e vendedores e nos fornece acesso aos recursos de pesquisa da plataforma do eBay, fornecendo uma maneira mais rápida de recuperar e manipular dados em comparação com as técnicas de raspagem na web.

As chamadas de API para encontrar

Os seguintes são, na minha opinião, as chamadas mais relevantes fornecidas pelo Encontrando API:

  • FindItemsadvanced - Vamos executar consultas complexas e aplicar filtros;
  • FindItemsByCategory - Vamos encontrar artigos pertencentes a uma categoria específica;
  • FindItemsByKeyWords - Com esta chamada, podemos encontrar itens com base em palavras -chave;
  • FindItemsByProduct - Com esta chamada, podemos encontrar itens com base em identificadores como ISBN, EAN, UPC e EPID;

Você pode encontrar a lista completa das chamadas disponíveis para o Encontrando API Na página dedicada.
Neste tutorial, no entanto, vamos nos concentrar no FindItemsByKeywords chamar.



Antes de começarmos

No artigo anterior desta série, configuramos nosso ambiente de trabalho, portanto, a partir de agora, assumirei que você instalou corretamente o eBay Python SDK e criou sua API Keys. Já que estamos trabalhando com o Encontrando API, podemos trabalhar diretamente no local de produção.

Vamos começar, então. Como primeira coisa, criamos um diretório como base do nosso projeto; Vamos (surpreendentemente) chamá -lo de "eBay":

$ mkdir ebay

Dentro deste diretório, precisamos armazenar nossas credenciais no eBay.Yaml arquivo, como discutimos no artigo anterior. Você pode encontrar um modelo desse arquivo dentro da raiz do repositório do GitHub que clonamos. Aqui está o conteúdo do meu eBay.Yaml Arquivo, no qual eu já inseri minhas credenciais:

Conteúdo do arquivo de configuração da API do eBay como você pode observar, tudo o que precisamos fornecer na seção dedicada ao Encontrando API, é o ID do aplicativo Para nosso ambiente de produção.

Nossa primeira chamada de API

Por padrão, o eBay aceita a solicitação da API e fornece na forma de xml Estruturas: o que nos torna possível interagir com esses elementos de uma maneira orientada a objeto é o Python SDK. Agora que temos nossas credenciais em vigor, podemos começar a criar nossa primeira solicitação de API. Crie um novo arquivo e ligue FindByKeywords.py, Dentro dele, a primeira coisa que precisamos fazer é importar os módulos necessários:

#!/usr/bin/Env python3 de ebaysdk.Encontrar a conexão de importação 
cópia de

A próxima coisa a fazer é inicializar uma instância do Conexão Aula, aqui está como fazemos isso:

API = conexão (config_file = 'ebay.yaml ', siteId = "eBay-us")

Passamos alguns parâmetros para o construtor do Conexão aula: config_file, e ID do site. O primeiro é necessário para especificar o caminho para o arquivo que contém nossas credenciais: uma vez que, por padrão, seu valor é o mesmo do que fornecemos, poderíamos ter omitido. Os segundos argumentos necessários para especificar o site do país do eBay, a solicitação deve ser apontada para: "Ebay-us" é o padrão. Se eu quisesse realizar minha pesquisa no site italiano, por exemplo, eu teria usado "Ebay-it" em vez de. Muitos outros parâmetros podem ser passados ​​para ajustar a configuração padrão, mas para saber que nossa configuração é suficiente. Vamos continuar.

Inicializamos nossa instância do Conexão Classe, agora precisamos criar uma solicitação, que será incluída na chamada da API. Graças ao Python SDK, podemos representar um pedido com um dicionário, Especificando seus parâmetros com pares de valor-chave:

solicitação = 'palavras -chave': 'Senhor dos anéis', 
cópia de

O exposto acima é a solicitação mínima possível para o FindItemsByKeywords Ligue para: Acabamos de especificar as palavras -chave para pesquisar. Isso é possível porque 'palavras-chave' é o único parâmetro necessário para esta chamada.

Dependendo da chamada que queremos executar, podemos usar muitos outros parâmetros para refinar nossa solicitação. Para saber exatamente todos os parâmetros de solicitação disponíveis para uma chamada específica, você pode consultar a documentação bastante detalhada do eBay.



Restringindo nossa pesquisa com um filtro

Podemos especificar uma lista de filtros dentro de nossa solicitação, para que o número de resultados retornados seja reduzido. Dentro do pedido, o ItemFilter A chave está associada a uma matriz contendo todos os filtros, cada um deles na forma de um dicionário, onde o nome a chave está associada a uma sequência que representa o nome do filtro e o valor um está associado ao valor real que deve ser usado para o filtro. Vamos ver um exemplo. Digamos que queremos adicionar filtro ao nosso pedido, a fim de restringir nossa pesquisa apenas a "novos" itens:

request = 'palavras -chave': 'senhor dos anéis', 'itemfilter': ['name': 'condition', 'value': 'new'] 
cópia de

No exemplo acima, usamos o doença filtrar, mas muitos outros estão disponíveis. Por exemplo, o Excluiseller O filtro é útil para excluir vendedores específicos dos resultados, enquanto o Freeshippingnly um para restringir a pesquisa apenas a itens vendidos com frete grátis. A lista de filtros e seus valores possíveis é realmente longa: novamente, você pode encontrar todos eles consultando a documentação oficial.

Paginando os resultados

Outro parâmetro muito útil que podemos adicionar ao nosso pedido é paginaçãoInput. Ao usá -lo, podemos especificar um formato de paginação desejado. Dentro do pedido, o paginaçãoInput A chave está associada a um dicionário, contendo duas chaves: Página de entrada e número de página.

Com o primeiro, podemos especificar quantos resultados queremos receber "por página": não mais do que 100 Os resultados por página são suportados (este também é o valor padrão), enquanto o mínimo é 1. Com o segundo elemento, número de página, Podemos especificar qual página queremos receber nos resultados.

Digamos, por exemplo, que não queríamos mais de 10 resultados por página e estávamos interessados ​​apenas na primeira página, nossa solicitação se tornaria:

solicitação = 'Palavras -chave': 'Senhor dos Anéis', 'ItemFilter': ['Nome': 'Condition', 'Value': 'New'], 'paginationInput': 'EntriesPage': 10, ' Pagenumber ': 1 
cópia de

Na verdade, poderíamos ter omitido número de página, Como seu valor padrão é sempre "1".

Classificando os resultados

Outro parâmetro muito útil que podemos adicionar ao nosso pedido é ordem de classificação. Com este parâmetro, podemos usar um dos critérios de classificação disponíveis para organizar melhor nossos resultados. Digamos, por exemplo, queríamos classificar nossos resultados por preço em ordem crescente, para ter os itens mais baratos incluídos nos resultados primeiro:

solicitação = 'Palavras -chave': 'Senhor dos Anéis', 'ItemFilter': ['Nome': 'Condition', 'Value': 'New'], 'paginationInput': 'EntriesPage': 10, ' Pagenumber ': 1,' Sortorder ':' PriceplusShippingLowest ' 
cópia de

Nesse caso, usamos PriceplusshippingLowest Como uma ordem de classificação, os itens incluídos nos resultados serão classificados em ordem crescente pelo resultado da soma do preço e da taxa de envio. Assim como os filtros, os pedidos de classificação disponíveis são muitos para serem relatados aqui. Entre os outros que podemos usar Distancenearest ou EndTimesoSoSest Para classificar os resultados por distância em ordem ascendente ou no final mais próximo, respectivamente. Você pode encontrar todos os critérios de classificação possíveis consultando esta tabela.

Enviando nosso pedido e obtendo os resultados

Agora que terminamos de criar nossa solicitação, devemos realmente enviá -lo para o eBay e obter os resultados. Para realizar a primeira tarefa, usamos o executar método em nosso API objeto, especificando o nome da chamada que queremos usar como o primeiro argumento, e o dicionário representando nosso pedido como o segundo. Aqui está o que nosso script parece na íntegra neste momento:



#!/usr/bin/Env python3 de ebaysdk.Encontrar a conexão de importação se __name__ == '__main__': api = conexão (config_file = 'ebay.yaml ', debug = true, siteId = "eBay-us") request = ' palavras-chave ':' senhor dos anéis ',' itemfilter ': [' name ':' condicion ',' value ':' new ' ], 'paginationInput': 'entrriesperpage': 10, 'pagenumber': 1, 'sortorder': 'priceplusshippinglowest' resposta = API.execute ('findItemsbyKeywords', solicitação) 
cópia de

Nossos resultados serão devolvidos, e nós o referenciaremos com o resposta variável. Agora, queremos organizá -los, para que, para cada resultado, possamos ter o título e o preço exibidos na tela em um bom formato, podemos adicionar um loop simples para realizar esse resultado:

para item em resposta.responder.resultado da pesquisa.Item: print (f "Título: item.Título, preço: item.SellingStatus.preço atual.valor") 
cópia de

Se agora tentarmos lançar o script, obtemos os seguintes resultados:



Título: Senhor dos Anéis, o único anel lotr em aço inoxidável Mulheres Manring SZ12, Preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tocam sz13, preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tamanham 9, preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tocam sz13, preço: 0.01 Título: Senhor dos Anéis, o único anel de moda de aço inoxidável Mulheres Ring Sz11, Preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tamanham 7, preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tocam sz12, preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tamanham 9, preço: 0.01 Título: Senhor dos Anéis, o único anel de moda de aço inoxidável, homens do anel Tamanho 8, Preço: 0.01 Título: Senhor dos Anéis, o único anel lotr em aço inoxidável, masculina as mulheres tocam sz13, preço: 0.01 

Neste ponto, você pode perguntar: como posso saber a estrutura exata dos resultados? É uma boa pergunta e você pode ter uma resposta verificando o xml Representação da saída de uma solicitação de chamada que você pode na documentação do eBay dedicada à chamada específica. Você pode encontrar o que FindItemsByKeywords Seguindo este link.

Conclusões

Enquanto no artigo anterior falamos sobre como configurar nosso ambiente de trabalho, obtenha nossas chaves da API e instale o Python SDK, nesta segunda parte de nossa série de artigos sobre APIs do eBay, abordamos o Encontrando API, e construímos uma solicitação simples usando o FindItemsByKeywords chamar. Vimos brevemente como adicionar filtros e especificar uma ordem de classificação à nossa solicitação e como trabalhar com os resultados retornados.

No próximo artigo, entre as outras coisas, vamos construir nossa loja e veremos como usar o Negociação API para criar e enviar um item para ele. Em conclusão, aqui está uma recapitulação da documentação oficial que referenciamos neste artigo:

  • Documentação sobre o FindItemsByKeywords chamar
  • Lista de filtros de solicitação disponíveis
  • Lista de pedidos de classificação disponíveis
  • Lista de chamadas disponíveis para o Encontrando API

Tabela de conteúdo

  • Parte 0

    Introdução

  • Parte I

    Obtendo chaves e acesso à caixa de areia

  • PARTE II

    A API de descoberta

  • Parte III

    A API de negociação

  • Parte IV

    A API de merchandising

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Como criar um pacote Flatpak
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Como trabalhar com a API de Rest WooCommerce com Python
  • Tutorial de depuração do GDB para iniciantes
  • Como usar o ADB Android Debug Bridge para gerenciar seu Android…