Introdução à API do eBay com Python A API de Finding - Parte 2
- 4285
- 319
- Howard Fritsch
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;
Requisitos de software e convenções usadas
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:
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…
- « Introdução à doutrina ORM e padrão de mapeador de dados em PHP
- Introdução à API do eBay com Python A API de merchandising - Parte 4 »