Como Pegar Cotações de Ações do Yahoo Finance com Python
Nesta aula, vou te mostrar como pegar cotações de ações do Yahoo Finance com Python de forma prática e automatizada!
O que você vai aprender?
Como Pegar Cotações de Ações do Yahoo Finance com Python
Na aula de hoje, vou te ensinar como pegar cotações de ações do Yahoo Finance com Python! O objetivo é automatizar esse processo para trazer informações atualizadas dos ativos que você está buscando.
Esse processo é bem simples e rápido, utilizaremos as bibliotecas pandas-datareader e yfinance. Dessa forma, você poderá pegar cotações de ações do Yahoo Finance com Python em um determinado período e a partir daí realizar suas análises.
Se estiver interessado em aprofundar seus conhecimentos em análise de dados, recomendo que acesse nosso Minicurso Gratuito de Análise de Dados!
Nos materiais para download desta aula, você encontrará o gabarito do nosso código e um arquivo em branco para aprender a construí-lo do zero. Então, vamos começar!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
Por que automatizar cotações de ações
Pegar cotações manualmente é lento e sujeito a erros, principalmente quando lidamos com várias ações ou períodos extensos.
Automatizando o processo com Python, você consegue:
- Atualizar suas análises de forma rápida;
- Evitar retrabalho;
- Organizar dados para gráficos e estatísticas.
Bibliotecas Necessárias
Existem várias maneiras de pegar cotações de ações do Yahoo Finance com Python. Nesta aula, utilizaremos uma das mais populares, que é aplicando as bibliotecas pandas_datareader e yfinance.
Esse processo pode ser executado em qualquer editor de código, mas no exemplo desta aula, estarei usando o Jupyter. No entanto, é importante ter algumas bibliotecas instaladas em seu computador: pandas-datareader, yfinance, pandas, numpy e matplotlib.
Caso não tenha alguma dessas bibliotecas instaladas, abra o terminal do seu editor de código e execute a instalação delas.
pip install pandas-datareader yfinance pandas numpy matplotlibSe estiver utilizando o Jupyter, você pode fazer a instalação diretamente em uma das células dele.
!pip install pandas-datareader yfinance pandas numpy matplotlibAgora que temo as bibliotecas instaladas, vamos fazer as importações necessárias para o nosso código:
- A biblioteca do Pandas será importada como pd.
- A biblioteca pandas_datareader.data como pdr, onde a função data importada junto com o nome será responsável pelas requisições ao Yahoo Finance. Obs: Em alguns lugares, essa biblioteca é importada com o alias de web ao invés de pdr.
- A biblioteca yfinance, que será importante para corrigir alguns bugs e problemas que a biblioteca pandas-datareader está apresentando ao obter os dados do Yahoo Finance.
import pandas as pd
import pandas_datareader.data as pdr
import yfinanceYfinance – Ajustando a Biblioteca do Pandas DataReader
Após importarmos as bibliotecas para o nosso código, o próximo passo é ajustar o pandas-datareader utilizando a biblioteca yfinance para corrigir os bugs.
Podemos fazer isso com o seguinte código:
yfinance.pdr_override()Dessa forma, a yfinance irá substituir as funções do pandas-datareader que estão apresentando bugs ao obter os dados do Yahoo Finance por funções que funcionam corretamente.
Importante: Independentemente de como você tenha importado o pandas-datareader, o comando para ajustar com o yfinance sempre será .pdr_override().
Como Pegar Cotações do Yahoo Finance com Python
Antes de obtermos as cotações do Yahoo Finance, é importante entender como funcionam os tickers (siglas que identificam as ações) utilizados no site. Por exemplo, os ativos brasileiros sempre possuem um .SA ao final, e os outros índices são antecedidos por circunflexo (^). Verifique sempre essa informação no site antes de aplica-la ao código.
Para o nosso exemplo, vamos pegar as cotações do Itaú (ITB3.SA), da Vale (VALE3.SA), da Petrobrás (PETR3.SA) e o índice do IBOVESPA (^BVSP).
A lista de ativos ficará assim:
ativos = [“ITUB3.SA”, “VALE3.SA”, “PETR3.SA”, “^BVSP”]Pegando a Cotação de um Ativo:
Vamos primeiro aprender como fazer essa requisição para um único ativo e, em seguida, adaptá-la para todos os ativos. Portanto, vamos começar obtendo as cotações do índice IBOVESPA.
data_inicial = “2023-01-01”
data_final = “2023-06-30”
tabela_cotacoes = pdr.get_data_yahoo(“^BVSP”, data_inicial, data_final)
display(tabela_cotacoes)A tabela_cotacoes será a tabela que obteremos da função get_data_yahoo do pdr (pandas-datareader). Essa função precisa receber três argumentos: o ticker, a data inicial e a data final.
O ticker deve ser passado exatamente como está registrado no site do Yahoo Finance, e as datas podem ser inseridas de duas formas: como texto no formato “2023-01-01” (ano-mês-dia) ou, podemos importar a biblioteca datetime do Python para obter as datas.
Nossa tabela_cotacoes será um dataframe, então podemos exibi-la usando display(tabela_cotacoes) se você estiver utilizando o Jupyter, ou com print(tabela_cotacoes) se estiver usando outro editor.

Teremos todas as informações organizadas por dia, incluindo o preço de abertura, máxima e mínima do dia, preço de fechamento, fechamento ajustado e o volume de transação daquele dia.
Normalmente, ao fazer análises de cotações, é comum utilizar principalmente o fechamento ajustado (Adj Close). Portanto, é frequente encontrar códigos que, logo na requisição, filtram apenas essa coluna.
data_inicial = “2023-01-01”
data_final = “2023-06-30”
tabela_cotacoes = pdr.get_data_yahoo(“^BVSP”, data_inicial, data_final)[“Adj Close”]
display(tabela_cotacoes)Dessa forma, o resultado retornará apenas os dias com o fechamento ajustado. Essa é uma forma de simplificar a exibição e trabalhar especificamente com essa coluna nas análises.

Pegando a cotação para vários ativos diferentes:
Podemos obter as cotações de vários ativos de forma simples também. Basta passarmos para a função get_data_yahoo() uma lista Python contendo os nomes dos ativos que desejamos. Vamos utilizar a lista que definimos anteriormente.
ativos = [“ITUB3.SA”, “VALE3.SA”, “PETR3.SA”, “^BVSP”]
data_inicial = “2023-01-01”
data_final = “2023-06-30”
tabela_cotacoes = pdr.get_data_yahoo(ativos, data_inicial, data_final)
display(tabela_cotacoes)
Esse código retornará uma tabela com as informações de todos os ativos que foram incluídos na nossa lista. Essa tabela é um MultiIndex Dataframe, ou seja, apresenta mais de um índice de coluna, um para o tipo de informação e outro para o ativo.
Como é mais comum utilizarmos apenas o fechamento ajustado, também podemos filtrar essa requisição para termos uma tabela apenas com o Adj Close de cada ativo.
ativos = [“ITUB3.SA”, “VALE3.SA”, “PETR3.SA”, “^BVSP”]
data_inicial = “2023-01-01”
data_final = “2023-06-30”
tabela_cotacoes = pdr.get_data_yahoo(ativos, data_inicial, data_final)[“Adj Close”]
display(tabela_cotacoes)
Você pode adicionar quantos ativos quiser à sua lista Python de ativos e executar o código. Lembre-se de utilizar os tickers correspondentes a cada ativo.
É importante ressaltar que, dependendo das datas que você definir para executar o código, algumas linhas podem aparecer vazias na tabela devido à forma como a base de dados do Yahoo Finance fornece essas informações.
Conclusão - Como Pegar Cotações de Ações do Yahoo Finance com Python
Nessa aula, foi possível aprender a como pegar cotações de ações do Yahoo Finance com Python, tanto para uma única ação quanto para uma lista de ativos.
Agora você tem uma maneira fácil, rápida e automática de obter esses dados para realizar suas análises do mercado financeiro.
E caso tenha interesse em aprofundar seus conhecimentos em análise de dados, recomendo que acesse nosso Minicurso Gratuito de Análise de Dados! É uma ótima oportunidade para expandir suas habilidades nesse campo.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








