Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sergiogarciadev/b4bef99fb25887e11f3e60887b1b4915 to your computer and use it in GitHub Desktop.
Save sergiogarciadev/b4bef99fb25887e11f3e60887b1b4915 to your computer and use it in GitHub Desktop.
Cotações da Bovespa Intraday
#!/usr/bin/env python
from datetime import datetime
from json import loads
from time import gmtime, mktime, strptime
# LevelDict é um wrapper usando dicionário para LevelDB
# https://github.com/maurobaraldi/leveldict
from leveldict import LevelJsonDict
from requests import get
base = 'http://cotacoes.economia.uol.com.br/ws/asset'
assets = base + '/stock/list?size=10000'
intraday = base + '/{asset}/intraday?size=400&callback=uolfinancecallback0'
assets = {i['code']: i['idt'] for i in get(assets).json()['data']}
# 3 ativos para teste
# assets = {'PETR4.SA': 484, 'CTAX4.SA': 227, 'IGUA3.SA': 364}
db = LevelJsonDict('./intraday')
def from_ts(ts):
''' Convert timestamp (13 digits support) to datetime'''
return datetime.fromtimestamp(mktime(gmtime(ts / 1000.0)))
def to_ts(dt):
''' From strftime to timestamp (13 digits support)'''
return int(mktime(strptime(dt, "%Y-%m-%d %H:%M")) * 1000)
def get_intraday(asset):
url = intraday.format(**{'asset': asset})
return loads(get(url).content[20:-2])
if __name__ == '__main__':
for asset, code in assets.iteritems():
today = datetime.now().strftime('%Y%m%d')
quote = get_intraday(code).get('data', {})
db.setdefault(asset)
db[asset] = {today: quote}
@andreseg2
Copy link

Não consigo instalar de jeito nenhum a biblioteca "leveldict", dando o erro:
ERROR: Command errored out with exit status 1:
command: 'C:\Users\André\Anaconda3\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\ANDR1\AppData\Local\Temp\pip-install-8iy8b8mu\leveldb\setup.py'"'"'; file='"'"'C:\Users\ANDR1\AppData\Local\Temp\pip-install-8iy8b8mu\leveldb\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
cwd: C:\Users\ANDR~1\AppData\Local\Temp\pip-install-8iy8b8mu\leveldb
Complete output (1 lines):
Don't know how to compile leveldb for Windows!

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Saberia dizer como poderia instalar?

Ou há alguma alternativa para LevelJsonDict ?

@sergiogarciadev
Copy link
Author

sergiogarciadev commented Oct 3, 2019 via email

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