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. Gosta de aplicar Python em finanças ? Saiba como
balancear uma carteira de investimentos usando Python. Este artigo tem fins estritamente educacionais de programação em Python e não constitui recomendação de investimento.
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.
Instalando o yfinance
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.
Verificar se a versão correta foi instalada
Para se certificar que a versão instalada do yfinance foi a 0.2.66 podemos no terminal executar o 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.
Com o ambiente configurado e as bibliotecas instaladas, já podemos escrever nosso primeiro código para coletar dados de um ativo.
Definindo a estrutura básica do programa
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.
Principais métricas que você pode extrair
Agora, é apresentado as principais métricas que podemos obter da B3 usando o Python.
Buscando informações básicas de um ativo
O passo seguinte é 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”. É importante ressaltar que esse sufixo determina que a ação está listada na bolsa brasileira B3. Adiante, 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.
import yfinance as yf
acao = "BBAS3.SA" #Ação do banco do Brasil
informacoes = yf.Ticker(acao)
info = informacoes.info
print(f"Nome: {info.get('longName')}")
print(f"Setor: {info.get('sector')}")
print(f"Preço atual: {info.get('currentPrice')} BRL")
Buscando o histórico de um ativo
É 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.
import yfinance as yf
bbas3 = yf.Ticker("BBAS3.SA")
dados = bbas3.history(period="6mo") #Obtém os dados dos últimos 6 meses
print("Histórico dos últimos 6 meses (BBAS3):")
print(dados.head())
Buscando o preço atual de um ativo
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.
import yfinance as yf
bbas3 = yf.Ticker("BBAS3.SA")
historico = bbas3.history(period="1d")
if not historico.empty:
preco_atual = historico["Close"].iloc[-1]
print(f"Preço atual do Banco do Brasil: R${preco_atual:.2f}")
else:
print("Não foi possível obter o preço atual no momento.")
Buscando informações para análises fundamentalistas
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, demonstrações financeiras e fluxo de caixa das empresas. Isso pode ser feito com o seguinte trecho de código.
import yfinance as yf
bbas3 = yf.Ticker("BBAS3.SA")
print("\n--- Balanço Patrimonial (Anual) ---")
print(bbas3.balance_sheet) # Balanço Patrimonial (Anual)
print("\n--- Demonstração de Resultados (Financials) ---")
print(bbas3.financials) # Demonstração de Resultados (DRE)
print("\n--- Fluxo de Caixa ---")
print(bbas3.cashflow) # Fluxo de Caixa
Estrutura completa do código
Montando todos os trechos de código em um arquivo python temos a seguinte estrutura.
import yfinance as yf
def main():
#Buscando informações básicas de um ativo
acao = "BBAS3.SA" #Ação do banco do Brasil
informacoes = yf.Ticker(acao)
info = informacoes.info
print(f"Nome: {info.get('longName')}")
print(f"Setor: {info.get('sector')}")
print(f"Preço atual: {info.get('currentPrice')} BRL")
#Buscando o histórico de um ativo
bbas3 = yf.Ticker("BBAS3.SA")
dados = bbas3.history(period="6mo") #Obtém os dados dos últimos 6 meses
print("Histórico dos últimos 6 meses (BBAS3):")
print(dados.head())
#Buscando o preço atual de um ativo
bbas3 = yf.Ticker("BBAS3.SA")
historico = bbas3.history(period="1d")
if not historico.empty:
preco_atual = historico["Close"].iloc[-1]
print(f"Preço atual do Banco do Brasil: R${preco_atual:.2f}")
else:
print("Não foi possível obter o preço atual no momento.")
#Buscando informações para análises fundamentalistas
bbas3 = yf.Ticker("BBAS3.SA")
print("\n--- Balanço Patrimonial (Anual) ---")
print(bbas3.balance_sheet) # Balanço Patrimonial (Anual)
print("\n--- Demonstração de Resultados (Financials) ---")
print(bbas3.financials) # Demonstração de Resultados (DRE)
print("\n--- Fluxo de Caixa ---")
print(bbas3.cashflow) # Fluxo de Caixa
main()
Execução do código
Após a execução é possível obter um resultado como o apresentado abaixo:
Nome: Banco do Brasil S.A.
Setor: Financial Services
Preço atual: 21.2 BRL
Histórico dos últimos 6 meses (BBAS3):
Open High Low Close Volume Dividends Stock Splits
Date
2025-07-14 00:00:00-03:00 21.008988 21.018934 20.511616 20.571301 28395000 0.0 0.0
2025-07-15 00:00:00-03:00 20.640931 20.949301 20.601140 20.790142 30999200 0.0 0.0
2025-07-16 00:00:00-03:00 20.879671 20.879671 20.063981 20.770248 55147900 0.0 0.0
2025-07-17 00:00:00-03:00 20.730460 20.790144 20.471826 20.630985 28673400 0.0 0.0
2025-07-18 00:00:00-03:00 20.491720 20.710563 20.093823 20.153507 42591900 0.0 0.0
Preço atual do Banco do Brasil: R$21.20
--- Balanço Patrimonial (Anual) ---
2024-12-31 2023-12-31 2022-12-31 2021-12-31
Treasury Shares Number 2.287603e+07 2.318146e+07 2.366075e+07 2.403524e+07
Ordinary Shares Number 5.707958e+09 5.707653e+09 5.707173e+09 5.706799e+09
Share Issued 5.730834e+09 5.730834e+09 5.730834e+09 5.730834e+09
Net Debt NaN NaN NaN 4.182574e+10
Total Debt 1.701416e+11 1.421892e+11 1.551995e+11 1.719459e+11
Tangible Book Value 1.682726e+11 1.584334e+11 1.494804e+11 1.349638e+11
Invested Capital 3.449246e+11 3.073039e+11 3.157706e+11 3.139409e+11
Net Tangible Assets 1.682726e+11 1.584334e+11 1.494804e+11 1.349638e+11
Common Stock Equity 1.796230e+11 1.692353e+11 1.605711e+11 1.419950e+11
Total Capitalization 3.449246e+11 3.073039e+11 3.157706e+11 3.139409e+11
Total Equity Gross Minority Interest 1.842363e+11 1.735703e+11 1.640288e+11 1.448572e+11
Minority Interest 4.613326e+09 4.335047e+09 3.457767e+09 2.862168e+09
Stockholders Equity 1.796230e+11 1.692353e+11 1.605711e+11 1.419950e+11
Other Equity Interest 5.100000e+09 6.100000e+09 7.100000e+09 8.100000e+09
Fixed Assets Revaluation Reserve NaN NaN NaN 0.000000e+00
Treasury Stock 2.635230e+08 2.682550e+08 2.725700e+08 2.769130e+08
Retained Earnings -1.537558e+10 -9.188503e+09 4.217580e+08 NaN
Capital Stock 1.200000e+11 1.200000e+11 9.000002e+10 9.000002e+10
Common Stock 1.200000e+11 1.200000e+11 9.000002e+10 9.000002e+10
Total Liabilities Net Minority Interest 2.214483e+12 1.980308e+12 1.865370e+12 1.787676e+12
Derivative Product Liabilities NaN 2.509742e+09 3.045463e+09 2.603927e+09
Long Term Debt And Capital Lease Obligation 1.701416e+11 1.421892e+11 1.551995e+11 1.719459e+11
Payables 7.808428e+10 6.984115e+10 6.233771e+10 5.811527e+10
Other Payable 1.198448e+10 9.978613e+09 8.154449e+09 5.843128e+09
Dividends Payable 4.315436e+09 3.322561e+09 NaN NaN
Total Tax Payable 9.366450e+09 7.244414e+09 7.422707e+09 1.066169e+10
Accounts Payable 5.241792e+10 4.929556e+10 4.676056e+10 4.161045e+10
Total Assets 2.398719e+12 2.153878e+12 2.029399e+12 1.932533e+12
Defined Pension Benefit 2.733886e+10 2.385168e+10 2.883025e+10 2.058475e+10
Investments And Advances 6.187833e+11 4.960804e+11 2.708325e+11 2.525306e+11
Investmentin Financial Assets 5.969600e+11 4.738654e+11 2.520325e+11 2.352545e+11
Held To Maturity Securities NaN 1.662250e+08 5.740450e+08 1.697138e+09
Available For Sale Securities 5.781309e+11 4.596921e+11 2.498203e+11 2.314223e+11
Financial Assets Designatedas Fair Value Throug... 6.161376e+09 1.219962e+10 NaN NaN
Long Term Equity Investment 2.182329e+10 2.221505e+10 1.880002e+10 1.727610e+10
Goodwill And Other Intangible Assets 1.135042e+10 1.080193e+10 1.109064e+10 7.031258e+09
Other Intangible Assets 1.135042e+10 1.078752e+10 1.101462e+10 7.031258e+09
Goodwill NaN 1.325700e+07 7.602000e+07 NaN
Net PPE 1.639697e+10 1.411801e+10 8.825918e+09 8.541236e+09
Accumulated Depreciation -2.217431e+10 -1.977357e+10 -1.286360e+10 -1.199162e+10
Gross PPE 3.857128e+10 3.389158e+10 2.168952e+10 2.053286e+10
Construction In Progress NaN 1.116084e+09 8.968980e+08 6.715680e+08
Other Properties 1.935595e+10 1.657016e+10 5.923999e+09 5.554344e+09
Machinery Furniture Equipment 5.703714e+09 5.185778e+09 5.637059e+09 5.305050e+09
Buildings And Improvements 1.309621e+10 1.177216e+10 8.912801e+09 8.679901e+09
Land And Improvements 4.154070e+08 3.634720e+08 3.187640e+08 3.219930e+08
Prepaid Assets 3.632763e+09 2.371639e+09 5.837780e+08 4.062110e+08
Receivables 1.486445e+10 1.269232e+10 4.917473e+10 6.577666e+10
Taxes Receivable 1.204715e+10 9.630569e+09 1.152350e+10 8.807717e+09
Cash And Cash Equivalents 2.520669e+11 1.945275e+11 1.686824e+11 1.301201e+11
Cash Financial 2.007974e+10 1.732774e+10 1.831055e+10 1.802300e+10
Cash Cash Equivalents And Federal Funds Sold 5.742573e+11 5.883100e+11 7.513227e+11 7.702956e+11
--- Demonstração de Resultados (Financials) ---
2024-12-31 2023-12-31 2022-12-31 2021-12-31
Tax Effect Of Unusual Items 0.000000e+00 0.000000e+00 -1.014956e+04 -1.505752e+08
Tax Rate For Calcs 3.400000e-01 1.939770e-01 1.990110e-01 1.569750e-01
Total Unusual Items NaN -7.156700e+07 -5.100000e+04 -9.592310e+08
Total Unusual Items Excluding Goodwill NaN -7.156700e+07 -5.100000e+04 -9.592310e+08
Net Income From Continuing Operation Net Minori... 2.635886e+10 2.986096e+10 3.508077e+10 2.224624e+10
Reconciled Depreciation 5.109556e+09 5.192367e+09 2.833098e+09 2.828694e+09
Net Interest Income 1.045144e+11 8.874873e+10 8.226943e+10 6.273943e+10
Interest Expense 1.689908e+11 1.766899e+11 1.584393e+11 6.893018e+10
Interest Income 2.735053e+11 2.654386e+11 2.407087e+11 1.316696e+11
Normalized Income 2.635886e+10 2.986096e+10 3.508081e+10 2.305489e+10
Net Income From Continuing And Discontinued Ope... 2.635886e+10 2.986096e+10 3.508077e+10 2.224624e+10
Diluted Average Shares 5.708392e+09 5.707985e+09 5.707543e+09 5.707155e+09
Basic Average Shares 5.708392e+09 5.707985e+09 5.707543e+09 5.707155e+09
Diluted EPS 4.620000e+00 5.230000e+00 5.415000e+00 3.430000e+00
Basic EPS 4.620000e+00 5.230000e+00 5.415000e+00 3.430000e+00
Diluted NI Availto Com Stockholders 2.635886e+10 2.986096e+10 3.089762e+10 1.957442e+10
Net Income Common Stockholders 2.635886e+10 2.986096e+10 3.089762e+10 1.957442e+10
Otherunder Preferred Stock Dividend NaN 2.040990e+08 2.146170e+08 1.359830e+08
Net Income 2.635886e+10 2.986096e+10 3.111224e+10 1.971040e+10
Minority Interests -2.812704e+09 -3.304626e+09 -2.682890e+09 -1.605513e+09
Net Income Including Noncontrolling Interests 2.917156e+10 3.316559e+10 3.379513e+10 2.131592e+10
Net Income Extraordinary NaN -4.328027e+09 -3.968528e+09 -2.535833e+09
Net Income Continuous Operations 2.917156e+10 3.316559e+10 3.776366e+10 2.385175e+10
Tax Provision -1.460975e+09 7.981600e+09 9.382630e+09 4.441300e+09
Pretax Income 2.771059e+10 4.114719e+10 4.714629e+10 2.829305e+10
Other Non Operating Income Expenses NaN 2.535270e+08 7.192020e+08 2.460570e+08
Special Income Charges NaN -7.156700e+07 -5.100000e+04 -9.592310e+08
Write Off NaN 7.156700e+07 5.100000e+04 9.592310e+08
Gain On Sale Of Security 3.691682e+09 -3.672070e+08 NaN NaN
Operating Expense 7.755848e+10 6.826405e+10 5.854954e+10 5.502919e+10
Other Operating Expenses 2.188937e+10 1.935457e+10 2.203513e+10 1.943337e+10
Depreciation And Amortization In Income Statement 5.109556e+09 5.192367e+09 2.833098e+09 2.828694e+09
Amortization 2.467259e+09 2.356219e+09 1.361750e+09 1.441449e+09
Depreciation Income Statement 2.642297e+09 2.836148e+09 1.471348e+09 1.387245e+09
Selling General And Administration 8.201089e+09 7.315605e+09 8.129221e+09 8.140537e+09
Selling And Marketing Expense 8.906530e+08 7.631110e+08 6.608100e+08 6.475260e+08
General And Administrative Expense 7.310436e+09 6.552494e+09 7.468411e+09 7.493011e+09
Insurance And Claims 4.853990e+08 4.243650e+08 2.941940e+08 2.220620e+08
Rent And Landing Fees 3.139320e+08 1.478720e+08 1.429655e+09 1.420381e+09
Total Revenue 1.417614e+11 1.254659e+11 1.232483e+11 9.977656e+10
Operating Revenue 1.417614e+11 1.254659e+11 1.232483e+11 9.977656e+10
--- Fluxo de Caixa ---
2024-12-31 2023-12-31 2022-12-31 2021-12-31
Free Cash Flow 1.214619e+11 1.170924e+10 5.810186e+10 -5.110122e+10
Capital Expenditure -5.746240e+09 -5.031540e+09 -6.592814e+09 -4.909272e+09
End Cash Position 8.316724e+10 5.699981e+10 6.882628e+10 5.449468e+10
Beginning Cash Position 5.699981e+10 6.882628e+10 5.449468e+10 1.761895e+11
Effect Of Exchange Rate Changes 1.381338e+10 -1.586637e+10 -5.501147e+09 1.553477e+09
Changes In Cash 1.235405e+10 4.039905e+09 1.983274e+10 -1.232483e+11
Financing Cash Flow -2.136123e+10 -3.434195e+10 -2.697874e+10 -2.377820e+10
Net Other Financing Charges -3.546145e+09 -1.768553e+10 -1.573266e+09 -2.294146e+09
Interest Paid Cff -2.126160e+08 -2.581970e+08 NaN NaN
Cash Dividends Paid -1.482429e+10 -1.295652e+10 -1.181030e+10 -6.454965e+09
Common Stock Dividend Paid -1.482429e+10 -1.295652e+10 -1.181030e+10 NaN
Net Common Stock Issuance NaN NaN NaN 0.000000e+00
Net Issuance Payments Of Debt NaN -6.916721e+09 -1.223004e+10 -1.435943e+10
Net Long Term Debt Issuance NaN -6.916721e+09 -1.223004e+10 -1.435943e+10
Investing Cash Flow -9.349281e+10 2.164107e+10 -1.788319e+10 -5.327815e+10
Dividends Received Cfi 7.294472e+09 5.251011e+09 4.216912e+09 2.031955e+09
Net Investment Purchase And Sale -9.503077e+10 2.144945e+10 -1.615562e+10 -4.997414e+10
Sale Of Investment 3.488026e+11 2.129037e+11 2.217187e+11 2.219149e+11
Purchase Of Investment -4.438333e+11 -1.914543e+11 -2.378743e+11 -2.718890e+11
Net Business Purchase And Sale -1.350000e+07 -3.120000e+07 6.450600e+08 -5.166330e+08
Sale Of Business NaN 0.000000e+00 6.450600e+08 0.000000e+00
Purchase Of Business -1.350000e+07 -3.120000e+07 0.000000e+00 -5.166330e+08
Net Intangibles Purchase And Sale -2.773925e+09 -2.009620e+09 -4.855443e+09 -3.153679e+09
Purchase Of Intangibles -2.773925e+09 -2.009620e+09 -4.855443e+09 -3.153679e+09
Net PPE Purchase And Sale -2.969092e+09 -3.018570e+09 -1.734099e+09 -1.665650e+09
Sale Of PPE 3.223000e+06 3.350000e+06 3.272000e+06 8.994300e+07
Purchase Of PPE -2.972315e+09 -3.021920e+09 -1.737371e+09 -1.755593e+09
Operating Cash Flow 1.272081e+11 1.674078e+10 6.469467e+10 -4.619195e+10
Taxes Refund Paid -1.003751e+10 -5.519660e+09 -5.836491e+09 -3.689135e+09
Change In Working Capital 6.195116e+10 -6.655139e+10 4.374422e+09 -9.428174e+10
Change In Other Current Liabilities 8.878866e+09 -4.598008e+10 -1.320498e+10 8.720377e+09
Change In Other Current Assets -8.244607e+09 -1.524700e+09 -7.235668e+09 -1.239938e+10
Other Non Cash Items 1.425940e+08 4.550500e+07 -6.234000e+06 -2.510840e+08
Provisionand Write Offof Assets 5.164776e+10 2.954110e+10 3.139562e+10 2.758560e+10
Deferred Tax -1.460975e+09 7.981600e+09 9.382630e+09 4.441300e+09
Depreciation And Amortization 5.109556e+09 5.192367e+09 2.833098e+09 2.828694e+09
Amortization Cash Flow 2.467259e+09 2.356219e+09 NaN 2.127100e+07
Depreciation 2.642297e+09 2.836148e+09 2.833098e+09 2.828694e+09
Pension And Employee Benefit Expense 9.409385e+09 5.898798e+09 -2.762476e+09 -1.754070e+09
Gain Loss On Investment Securities -5.081770e+08 -5.364800e+07 NaN NaN
Net Foreign Currency Exchange Gain Loss -1.046240e+10 1.429368e+10 -2.029866e+09 1.141947e+09
Gain Loss On Sale Of PPE -2.779740e+08 -1.589930e+08 -7.282740e+08 -2.838730e+08
Net Income From Continuing Operations 2.917156e+10 3.316559e+10 3.111224e+10 1.971040e+10
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.
Vídeo passo a passo de como buscar um ativo na B3 usando o Python
Se você ficou com alguma dúvida na hora de implementar a solução, não se preocupe! Vá ao canal do Descomplicando algoritmos no YouTube e assista um vídeo detalhado mostrando o passo a passo.
