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.