Skip to content

Instantly share code, notes, and snippets.

@maurobaraldi
Last active August 11, 2024 20:31
Show Gist options
  • Save maurobaraldi/40ec1daf0005530dd94a to your computer and use it in GitHub Desktop.
Save maurobaraldi/40ec1daf0005530dd94a 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}
@andreofgyn
Copy link

Opa obrigado por compartilhar, ele não fornece o histórico intraday?

Para histórico, você pode fazer como abaixo, mas ainda não explorei muito:

https://query1.finance.yahoo.com/v8/finance/chart/PETR4.SA?period1=1598922000&period2=1601506800&interval=1d

@xRoDriGox
Copy link

Boa noite,

Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000

Obrigado

@rgraziola
Copy link

Boa noite,

Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000

Obrigado

Esse ai ja era.
Outra saida de uso pode ser esse abaixo.

http://bvmf.bmfbovespa.com.br/cotacoes2000/FormConsultaCotacoes.asp?strListaCodigos=USIM5|PETR4

@djalmaaraujo
Copy link

A da uol morreu mesmo.

@ZotInfo
Copy link

ZotInfo commented Oct 26, 2020

Boa noite,
Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000
Obrigado

Esse ai ja era.
Outra saida de uso pode ser esse abaixo.

http://bvmf.bmfbovespa.com.br/cotacoes2000/FormConsultaCotacoes.asp?strListaCodigos=USIM5|PETR4

Será que essa ai vai durar bastante?

@eltoncayo
Copy link

Putzz usava desde ano passado essa da UOL. A alternativa atual é só do yahoo mesmo?

@vitorsma
Copy link

Boa noite,

Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000

Obrigado

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=abbreviation,id

@savioramos
Copy link

Esta scritpt está rodando bonitinho:

https://pypi.org/project/yahooquery/

@MatheusVp2
Copy link

Sabem de algum site que mostra em tempo real ?
Sem atraso, consigo analisar e/ou fazer um scraping, caso queiram !
Trazendo os dados formatados !

@eltoncayo
Copy link

Boa noite,
Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000
Obrigado

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=abbreviation,id

Me salvou, obrigado!

@thaleshcv
Copy link

Boa noite,
Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000
Obrigado

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=abbreviation,id

Valeu pela dica. Sabe quais os valores possíveis para o parâmetro fields?

@ZotInfo
Copy link

ZotInfo commented Jan 8, 2021

Boa noite,
Alguem consegue me dizer como ficou essa chamada? Onde listava todos os ativos da Bolsa?
http://cotacoes.economia.uol.com.br/ws/asset/stock/list?size=10000
Obrigado

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=abbreviation,id

Valeu pela dica. Sabe quais os valores possíveis para o parâmetro fields?

Também gostaria de saber os fields disponíveis para esse link, será que tem alguma documentação?

@ZotInfo
Copy link

ZotInfo commented Jan 8, 2021

Parece que encontrei algo útil nesse post:
https://stackoverflow.com/questions/62963923/get-value-from-graphicview-bidvalue

Porém ao testar os outros fields não obtive resultado :/

@BeneInfosec
Copy link

Não consigo baixar o 'py-leveldb" pois a url dele não existe mais. O que eu faço nesse caso?

@cortextecnologia
Copy link

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=id,abbreviation,name,companies,exchange

Alguém sabe qual o nome do "fields" para mostrar o tipo: Ações, FII, ETF, etc.???
ps: o Type "S" significa o que?

@ZotInfo
Copy link

ZotInfo commented Aug 2, 2021

https://api.cotacoes.uol.com/asset/list/?format=JSON&fields=id,abbreviation,name,companies,exchange

Alguém sabe qual o nome do "fields" para mostrar o tipo: Ações, FII, ETF, etc.???
ps: o Type "S" significa o que?

Também gostaria de saber os fields disponíveis para essa API

@isaacangello
Copy link

consegui dar uma ratreada e saber mas campos
https://api.cotacoes.uol.com/currency/intraday/list?currency=1&fields=bidvalue,askvalue,date,variationpercentbid
bidvalue = valor de venda
askvalue = valor de compra ()
variationpercentbid = variação da moeda (importante pra saber se a moeda tá subindo ou descendo)

@isaacangello
Copy link

mas alguém sabe como resolver esse erro aqui ?
"has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled."

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