Neste artigo, você vai aprender como buscar informações de um ativo da B3 (Bolsa de Valores do Brasil) usando Python. Vamos entender quais ferramentas são necessárias, como acessar os dados de forma prática e segura e, por fim, como exibir essas informações no seu código. Mesmo que você esteja dando os primeiros passos em programação ou no mundo dos investimentos, este guia vai te ajudar a compreender todo o processo de forma simples e objetiva.
Preparando o ambiente
Antes de começarmos a buscar informações dos ativos, precisamos preparar nosso ambiente de trabalho. Isso envolve ter o Python instalado e adicionar bibliotecas que vão facilitar a busca dos ativos na B3 e o tratamento dos dados.
Instalação do Python
Se ainda não tem o Python instalado, acesse o site oficial e faça o download da versão mais recente. Durante a instalação, marque a opção “Add Python to PATH” ou se estiver em português “Adicionar Python ao caminho do sistema” para facilitar o uso no terminal.
Instalação das bibliotecas necessárias
Iremos utilizar uma bibliotecas importante, o yfinance. Para isso, não precisamos baixar em site externo, mas usar o comando pip no terminal. A biblioteca yfinance irá buscar os ativos listados na B3. Dessa forma, só precisamos digitar o seguinte comando no terminal.
pip install yfinance==0.2.66
Dica importante: Certifique-se que a versão baixada do yfinance é a 0.2.66. Isso evitará possíveis problemas, pois atualmente é a versão mais estável disponível.
Para se certificar que a versão instalada do yfinance foi a 0.2.66 podemos no terminal executar o seguinte comando:
pip show yfinance
Se aparecer uma imagem semelhante a imagem abaixo, então a instalação está correta. Contudo, caso já tenha instalado em outro momento uma versão anterior, basta executar o comando mencionado acima que o python irá apagar a versão antiga e substituir pela nova versão.

Pronto! Seu ambiente já está configurado e podemos seguir para o próximo passo.
Consultando informações de um ativo
Com o ambiente configurado e as bibliotecas instaladas, já podemos escrever nosso primeiro código para coletar dados de um ativo.
Vamos iniciar com a estrutura básica e a biblioteca que iremos utilizar.
import yfinance as yf
def main():
return pass
main()
Esse código, define a primeira instrução realiza a importação do módulo yfinance, renomeando-o como yf, o que permite acessar suas funções de forma simplificada e voltada à obtenção e manipulação de dados financeiros. Em seguida, é definida a função main(), que representa o ponto central de execução do código. Dentro dela, a instrução pass atua como um marcador de posição, indicando que, embora a função já esteja declarada, ainda não há nenhuma lógica implementada. Por fim, o comando main() é chamado, fazendo com que o Python execute o conteúdo da função ao rodar o script. Por fim, é somente estabelecido a base estrutural de um programa bem organizado.
O pŕoximo passo é definir algumas variáveis dentro da função main(). A primeira variável chamaremos de acao, ela receberá o código do ativo listado na B3 que iremos buscar seguido do sufixo “.SA”. Depois disso, chamaremos o método Ticket que está dentro da biblioteca yfinance passando como parâmetro a variável que corresponde ao ativo que buscamos. Isso retornará um objetivo com as características do ativo. A partir disso, podemos utlizar o comando print para ver as informações como nome, setor e valor atual. O código abaixo apresenta o que foi descrito.
acao = "BBAS3.SA" #Ação do banco do Brasil
informacoes = yf.Ticket(acao)
print(f"Nome: {info.get('longName')}")
print(f"Setor: {info.get('sector')}")
print(f"Preço atual: {info.get('currentPrice')} BRL")
É possível também buscar o histórico de um ativo em um determinado período. Para isso, precisamos utlizar um outro método do yfinance chamado history passando um parâmetro: o período que queremos os dados. O código abaixo mostra como é possível fazer isso.
bbas3 = yf.Ticker("BBAS3.SA")
dados = bbas3.history(period="6mo") # Dados históricos dos últimos 6 meses
print(dados.head())
Além disso, para obter o preço atual de fechamento podemos fazer um comando muito semelhante ao mostrado acima, porém com algumas modificações para permitir pegar o preço “close”. O código abaixo mostra como fazer.
bbas3 = yf.Ticker("BBAS3.SA")
preco_atual = bbas3.history(period="1d")["Close"].iloc[-1]
print(f"Preço atual do Banco do Brasil: ${preco_atual:.2f}")
Por fim, o yfinance oferece um recurso muito interessante pra quem faz análise fundamentalista de ações, que é a possibilidade de pegar balanços e demonstrações financeiras das empresas. Isso pode ser feito com o seguinte trecho de código.
bbas3 = yf.Ticker("BBAS3.SA")
print(bbas3.balance_sheet)
print(bbas3.financials)
print(bbas3.cashflow)
Montando todos os trechos de código em um arquivo python temos a seguinte estrutura.
import yfinance as yf
def main():
bbas3 = "BBAS3.SA" #Ação do banco do Brasil
informacoes = yf.Ticket(bbas3)
#Obter informações gereais da empresa
print(f"Nome: {informacoes.get('longName')}")
print(f"Setor: {informacoes.get('sector')}")
print(f"Preço atual: {informacoes.get('currentPrice')} BRL")
# Obter dados históricos dos últimos 6 meses
dados = bbas3.history(period="6mo")
print(dados.head())
# Obter o preço atual do ativo
preco_atual = bbas3.history(period="1d")["Close"].iloc[-1]
print(f"Preço atual do Banco do Brasil: ${preco_atual:.2f}")
#Obter balanço e demonstrações financeiras
print(bbas3.balance_sheet)
print(bbas3.financials)
print(bbas3.cashflow)
main()
Importante: Após sucessivas chamadas a API do Yahoo finanças pode apresentar erro, pois segundo a documentação, ela não suporta uma carga de requisições muito alta.
