Pesquisar

ETL em Python para coleta intraday do Tesouro Direto

05/01/2026 às 21:15

Descrição do Projeto:

Preciso de um script em Python para coletar dados intraday do Tesouro Direto, utilizando arquivos CSV disponibilizados no site oficial.

Havia anteriormente um endpoint direto para acesso às taxas; porém, aparentemente, ele foi descontinuado para dados intraday. Importante: nenhuma API do Tesouro está fornecendo dados intraday, apenas D-1 — essas não servem para o projeto. Assim, a coleta via download dos CSVs passou a ser a alternativa viável.

Os dados são disponibilizados publicamente no site oficial do Tesouro Direto por meio de arquivos CSV. O script deve realizar a coleta de forma robusta, considerando variações de resposta HTTP e comportamento padrão de sites públicos.

URL base do Tesouro Direto:
https://www.tesourodireto.com.br/produtos/dados-sobre-titulos/rendimento-dos-titulos

Existem dois arquivos CSV distintos:
• Investimento
• Resgate

O script será executado 6 vezes por dia via cron e não deve duplicar dados no banco quando não houver mudança real nos dados de negócio (taxas, preços, etc.).

Requisitos técnicos:
• Python 3
• Linux (headless)
• requests, pandas
• Script standalone

Funcionamento esperado

Em cada execução:
• Baixar os 2 CSVs (investimento e resgate) a partir da URL informada
• Carregar os arquivos em DataFrame
• Adicionar campo data_coleta (datetime completo)

Deduplicação obrigatória:
• Gerar hash do conteúdo de cada CSV
• Comparar com o último hash armazenado para aquele tipo
• Se não houver alteração, não inserir novos dados (log: “sem alteração”)
• Se houver alteração: inserir dados em uma única tabela de intraday e atualizar tabela de controle

Após leitura:
• Mover os CSVs brutos para pasta de backup (caminho configurável)
• Não sobrescrever arquivos anteriores

Observação sobre deduplicação:
• O hash deve ser gerado a partir dos campos de negócio relevantes do CSV, garantindo que qualquer alteração em valores como preco_unitario ou taxa gere um novo hash.
• Campos técnicos (data_coleta, timestamps, etc.) não devem ser considerados no hash.

Banco de dados (MySQL)

Tabela principal - tesouro_intraday
• id
• tipo (investimento | resgate)
• titulo
• data_vencimento
• taxa
• indice
• preco_unitario
• data_coleta (datetime)
• data_insert (datetime)
• (demais campos existentes no CSV)

Tabela de controle (deduplicação) - tesouro_intraday_controle
• id
• tipo (investimento | resgate)
• hash_conteudo
• data_coleta
• data_insert (datetime)

O profissional deve criar as tabelas (DDL) e realizar os inserts conforme a lógica acima.

A solução deve funcionar considerando o comportamento padrão de sites públicos e respostas HTTP. Preferência por requests.Session + headers adequados. Uso de navegador automatizado apenas se estritamente necessário para acesso a conteúdo público, com justificativa técnica.

Retry e robustez
• Retry automático obrigatório: até 3 tentativas por execução, parametrizável, com tempo de espera em segundos aleatórios (ex.: entre 15 e 60 segundos).

Logs simples indicando:
• sucesso
• falha
• “sem alteração”

Entrega
• Script .py
• Script SQL (DDL das tabelas)
• README curto (execução e dependências)

Critério de aceite
• Script roda via cron
• Executa corretamente 6 vezes por dia durante 7 dias úteis
• Não duplica dados
• Deduplicação via hash funciona
• CSVs brutos arquivados corretamente

Observações finais
• O código precisa ser o mais simples e modular possível, pois será integrado a outro pipeline existente. Evitar soluções complexas ou acopladas desnecessariamente.
• Usuário e senha do banco devem ser passados via parâmetro ou variável de ambiente, nunca hardcoded.

Tenho precisado de apoio em outras frentes e posso dar preferência para novos projetos caso funcione bem nesse projeto simples.

Habilidades desejadas:

Linux MySQL Python Web Crawling

Atividades do cliente nesse projeto:

Última visualização: 05/01/2026 às 18:45

Última interação: ontem às 21:52

Tem dúvidas? Faça uma pergunta.

ou

Enviar proposta

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Outra - Web, Mobile & Software
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 23
Interessados: 34
Tempo restante:
Valor Mínimo: R$ 50,00

Cliente

Propostas (23)
  • Freelancer Premium Enok R.
    Talent
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer Pro Natan C.
    Top Freelancer
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

+ 3 propostas

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Ajustar fluxo de acesso para infoproduto (não é PDF) - Crio infoprodutos digitais com conteúdo online (não é PDF nem Canva). O conteúdo fica no site https://app.super.so/ alimentado pelo Notion e é atualizado continu...

Workflow n8n para robô de respostas inbound (Evolution API) - Especialista em n8n + Evolution API para automação de funil de vendas (inbound) Descrição: Preciso criar do zero um workflow no n8n que funcione via webhook conectado &...

Workflow 0 - Mineração e validação de leads com OCR - Especialista em n8n e visão computacional (OCR) para qualificação de leads. Preciso de um desenvolvedor para criar o Workflow #0 (Mineração e Validaç&atild...

Portal de aprovação de campanhas com automação (Make e n8n) - Estou desenvolvendo um portal interno para minha agência (OrganicWeb), onde o cliente acessa com usuário e senha para acompanhar todo o fluxo de produção e aprovaç...

Desenvolvimento e modelagem de robô inteligente (personalizado) - Estou buscando um programador experiente para desenvolver e modelar um robô inteligente, baseado em um modelo que já encontrei e considero muito bom. Eu fornecerei o modelo de refer&ec...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.