APIs e Microsserviços

5 out, 2012

Como obter os detalhes de um produto pelo seu ID utilizando o Wrapper Python do Buscapé

Publicidade

Hoje veremos como conseguir detalhes de um produto através do seu ID. Para Isso utilizaremos o Wrapper Python. Antes de começar, faça o download dos arquivos no nosso perfil do GitHub. Você também pode criar um ambiente virtual para sua aplicação e apenas importar a biblioteca, como explicado no repositório, sem necessidade de incluir os arquivos no diretório do seu projeto.

Antes de tudo, precisamos importar a API do Buscapé no nosso script. Para um teste rápido, entre no seu shell interativo do Python e execute o seguinte comando:

from buscape import Buscape

Agora vamos criar uma instância para o Wrapper Python e setar o ambiente de desenvolvimento.

apiki_buscape = Buscape(applicationID='564771466d477a4458664d3d')
apiki_buscape.set_sandbox()

Tendo nossa instância criada, vamos chamar o método que nos trará os detalhes do produto especificado e convertê-lo em um objeto JSON:

# certifique-se de ter importado a biblioteca json do python.
import json

product = apiki_buscape.view_product_details('383724', format='json')
product_json = json.loads(product.get('data'))

Pronto! Agora temos nosso produto. Com isso, podemos pegar seus dados. Vamos iterar pelo nosso objeto JSON e trazê-los:

for product in product_json.get('product'):
    for key in product.get('product').keys():
        print '%s : %s' % (key, product.get('product').get(key))

Com isso, teremos o seguinte resultado:

categoryid : 77
rating : {u'useraveragerating': {u'rating': u'7.8', u'specification': {u'item': [{u'item': {u'value': [u'7.0'], u'label': u'Dura\xe7\xe3o da Bateria'}}, {u'item': {u'value': [u'6.8'], u'label': u'Design'}}, {u'item': {u'value': [u'5.8'], u'label': u'Custo-Benef\xedcio'}}, {u'item': {u'value': [u'9.4'], u'label': u'Facilidade de Uso'}}, {u'item': {u'value': [u'8.2'], u'label': u'Fun\xe7\xf5es e Caracter\xedsticas'}}, {u'item': {u'value': [u'7.0'], u'label': u'Durabilidade'}}, {u'item': {u'value': [u'9.8'], u'label': u'Display'}}, {u'item': {u'value': [u'7.6'], u'label': u'Operadora'}}, {u'item': {u'value': [u'8.8'], u'label': u'C\xe2mera'}}]}, u'numcomments': 20, u'links': [{u'link': {u'url': u'http://sandbox.buscape.com/service/viewUserRatings/564771466d477a4458664d3d/br/?productId=383724&format=json', u'type': u'xml'}}]}}
totalsellers : 14
hasmetasearch : False
links : [{u'link': {u'url': u'http://compare.buscape.com.br/lg-optimus-l5-gsm-desbloqueado.html?mdapp=100&mddtn=69672797', u'type': u'product'}}, {u'link': {u'url': u'http://compare.buscape.com.br/prod_ficha?idu=383724', u'type': u'specification'}}, {u'link': {u'url': u'http://sandbox.buscape.com/service/findOfferList/564771466d477a4458664d3d/br/?productId=383724&format=json', u'type': u'xml'}}]
eco : False
productshortname : LG Optimus L5 Desbloqueado
specification : {u'item': [{u'item': {u'value': [u'5.0 MP'], u'label': u'Resolu\xe7\xe3o da C\xe2mera'}}, {u'item': {u'value': [u'MicroSD'], u'label': u'Slots de Expans\xe3o'}}, {u'item': {u'value': [u'Bluetooth', u'EDGE', u'GPRS', u'USB', u'Wi-Fi'], u'label': u'Tipos de Conex\xe3o'}}], u'links': [{u'link': {u'url': u'http://sandbox.buscape.com/service/viewProductDetails/564771466d477a4458664d3d/br/?productId=383724&format=json', u'type': u'xml'}}]}
fulldescription : True
thumbnail : {u'url': u'http://imagem.buscape.com.br/thumbs/ensopado/77/200x200_383724_1.jpg'}
id : 383724
currency : {u'abbreviation': u'BRL'}
pricemax : 800.11
productname : LG Optimus L5 GSM Desbloqueado
pricemin : 629.10
quantity : 0

É isso, developers! Qualquer dúvida ou sugestão, deixe seu comentário.