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: 15/01/2026 às 10:50

Última interação: 15/01/2026 às 09:27

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: 36
Propostas excluídas: 3
Interessados: 48
Valor Mínimo: R$ 50,00

Cliente

Freelancer vencedor

Propostas (33)
  • 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 Premium Enok R.
    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

  • 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

+ 13 propostas

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Integrar Typebot com API do painel VPN e Mercado Pago - OBS: Tenho todas as APIs e documentação para facilitar o projeto OBS2: Eu mesmo crio e organizo o fluxo de mensagens; eu só preciso que vocês façam a integra&cced...

Projeto de redes de computadores para unidade educacional - Estamos buscando um profissional de redes de computadores para elaborar um projeto técnico de rede Wi-Fi e cabeada para uma unidade educacional na zona rural. A internet não funciona ...

Automação de vendas no WhatsApp - n8n - Procuro especialista em n8n para automação de vendas no WhatsApp Estou buscando um especialista em n8n, com experiência real em automação comercial, para montar u...

Desenvolvimento de bot de arbitragem spot x futuros (criptomoedas) automatizado - Descrição do Projeto: Estou buscando um desenvolvedor experiente para criar um software/bot de arbitragem entre mercado spot e futuros de criptomoedas, com execução auto...

Automação de processos com n8n para triagem de leads - No Andrade Alves Advogados, escritório especializado em Direito Previdenciário, buscamos um Freelancer/PJ Pleno para um projeto ágil de 2-4 semanas: desenvolver automaç&...

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.