Webscraping no Tesouro Direto

Ricardo B Garcia rbgarcia@gmail.com

Data de atualização: 06/2022

O problema

Solução:

Bibliotecas utilizadas:

Bibliotecas

Carregando os dados do Tesouro Direto

Obs.: Podemos criar diretamente o request em formato dicionário aplicando o método .json():

resp_dict = requests.get(url, verify=False).json()

Percorrendo as chaves do dicionário

Quando o request foi bem sucedido, obtemos:

Explorando a chave 'response'

Chave 'BdTxTp'

Chave TrsrBondMkt

Chave 'TrsrBdTradgList'

Como o nome diz, trata-se de uma lista contendo todos os títulos que podem ser comprados ou vendidos. Na seção seguinte iremos explorar essa lista.

Chave 'BizSts'

Explorando as informações dos títulos públicos no Tesouro Direto

Cada título é acessado por índice numérico seguido por 'TrsrBd'. Vejamos um exemplo:

Nota: Os títulos que saíram de negociação de compra apresentam a última chave 'wdwlDt', contendo a data em que o título foi removido (withdrawal) das negociações. Esses títulos são acessados através da aba "Resgatar" na página do Tesouro Direito: https://www.tesourodireto.com.br/titulos/precos-e-taxas.htm

Construindo uma tabela para listar as chaves e seu conteúdo

A tabela abaixo sumariza as informações que podemos obter

Lista dos títulos disponíveis

Nota: Os títulos em negociação possuem valor de compra 'untrInvstmtVal', a qual é zero para os títulos somente disponíveis para resgate. Podemos usar esse valor como critério para filtrar os títulos.

Obtendo tabela de preços

Obtendo tabelas menores

Exemplificando como funciona a filtragem por índice

Exemplificando como funciona a filtragem por coluna

Exemplificando como funciona a filtragem pelo preço de compra

Considerações:

Função para consultar o Tesouro Direto

Exemplo de consultas