Skip to content

Instantly share code, notes, and snippets.

@phoemur
Created September 14, 2015 02:32
Show Gist options
  • Save phoemur/492a9763062dacb4abea to your computer and use it in GitHub Desktop.
Save phoemur/492a9763062dacb4abea to your computer and use it in GitHub Desktop.
Este script utiliza a API do MercadoLivre Brasil para realizar buscas através da linha de comando.
#!/usr/bin/env python3
'''
Este script utiliza a API do MercadoLivre Brasil para realizar buscas através da linha de comando.
Escrito em Python 3.
Uso: ./buscamercadolivre.py "PRODUTO"
Busque um produto por vez.
'''
import sys
import json
import codecs
import urllib.request
import urllib.parse
def usage():
print('Uso: {0} "PRODUTO"'.format(sys.argv[0]))
print('Busque um produto por vez')
sys.exit(1)
def busca(item):
url = 'https://api.mercadolibre.com/sites/MLB/search?q={0}'.format(item)
opener = urllib.request.build_opener()
opener.addheaders = [
('User-agent',
"Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201")]
with opener.open(url) as fd:
content = fd.read()
encoding = fd.info().get_content_charset()
content = content.decode(encoding)
dic = json.loads(content)
sys.stdout = codecs.getwriter('UTF-8')(sys.stdout.detach())
for elem in dic['results']:
print('{0:<70}R${1}\n{2}\n'.format(elem['title'],
elem['price'],
elem['permalink']))
if __name__ == '__main__':
if len(sys.argv) == 1 or sys.argv[1] in {'-h', '--help'}:
usage()
busca(urllib.parse.quote_plus(' '.join(sys.argv[1:])))
@pablohfreitas
Copy link

Muito bom seu código! A API só retorna os 50 primeiros itens, sabe como retornar todos os itens da busca?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment