Web Scraping de Odds com Python: Tutorial
Dá pra comparar odds de dezenas de casas de apostas em segundos usando Python. Nesse tutorial eu mostro como montar um scraper completo, do zero, com código pronto
TL;DR
Web Scraping de Odds com Python: Tutorial. Dá pra comparar odds de dezenas de casas de apostas em segundos usando Python. Nesse tutorial eu mostro como montar um scraper completo, do zero, com código pronto pra rodar.
Por que coletar odds de várias casas (line shopping)
Se você aposta em uma casa só, tá deixando dinheiro na mesa. Simples assim. Cada casa de apostas tem uma margem diferente, e as odds variam bastante entre elas pro mesmo evento. Isso se chama line shopping — comparar as linhas pra sempre pegar a melhor odd disponível.
Eu comecei a levar apostas a sério quando entendi que a diferença entre uma odd de 1.85 e 1.95 no mesmo resultado parece pequena, mas ao longo de centenas de apostas, isso vira uma diferença enorme no seu bankroll. Estamos falando de algo entre 3% e 8% a mais de retorno no longo prazo.
O problema é que fazer isso manualmente é inviável. Você não vai abrir 15 sites diferentes, procurar o mesmo jogo em cada um e anotar as odds numa planilha. Por isso a gente automatiza com Python.
O que o line shopping resolve
Setup do ambiente Python
Antes de começar a codar, vamos preparar o ambiente. Eu uso Python 3.11+ pra tudo relacionado a scraping. Se você ainda tá no 3.8 ou 3.9, vale atualizar porque as bibliotecas mais novas já pedem versões mais recentes.
A estrutura de pastas que eu uso é bem direta. Nada de overengineering — a gente quer algo funcional, não um monolito corporativo.
Método 1: APIs oficiais (The Odds API, OddsPortal)
A forma mais limpa de coletar odds é via API. Sem quebrar termos de serviço, sem lidar com CAPTCHAs, sem dor de cabeça. A The Odds API é a minha favorita porque tem um plano gratuito que dá pra começar tranquilamente.
O plano free dá 500 requests por mês. Parece pouco, mas se você focar nos esportes certos e nos horários certos, dá pra cobrir bastante coisa. Cada request retorna odds de todas as casas disponíveis pra um esporte específico.
Cuidado com os limites
O plano gratuito da The Odds API tem 500 requests/mês. Cada chamada pra um esporte consome 1 request.
Não fique rodando o script em loop sem controle. Use um scheduler (cron, APScheduler) com intervalos de pelo menos 15 minutos.
Salve os resultados no banco de dados pra não precisar consultar a API toda vez que quiser analisar algo.
Alternativa: OddsPortal e outras fontes
A OddsPortal não tem API pública oficial, mas dá pra usar como fonte de dados históricos. Já a BetfairExchange tem uma API bem documentada, só que exige cadastro e aprovação. Pra quem tá começando, The Odds API é disparada a melhor opção.
Método 2: Scraping com Beautiful Soup + Selenium
Quando a API não cobre o que você precisa — tipo odds de mercados mais nichados ou casas regionais — aí o scraping entra em cena. Eu uso Beautiful Soup pra sites estáticos e Selenium quando o conteúdo é carregado via JavaScript.
Vou ser direto: scraping de casas de apostas é uma briga constante. Eles mudam o HTML, adicionam anti-bot, colocam Cloudflare na frente. Não é um script que você faz uma vez e esquece. Precisa de manutenção.
API Oficial
Coleta dados via endpoints REST com chave de API
Prós
- Dados estruturados e confiáveis
- Sem risco de bloqueio ou CAPTCHA
- Atualizações em tempo real
- Legal e dentro dos termos de serviço
Contras
- Limites de requests no plano gratuito
- Nem todas as casas estão disponíveis
- Custos altos nos planos pagos ($79-199/mês)
Scraping (BS4 + Selenium)
Extrai dados diretamente do HTML das páginas
Prós
- Acessa qualquer site público
- Sem limites de requests
- Grátis
- Pega mercados que APIs não cobrem
Contras
- Quebra quando o site muda o layout
- Anti-bot pode bloquear (Cloudflare, reCAPTCHA)
- Pode violar termos de serviço
- Precisa de manutenção constante
Armazenando e analisando (SQLite, PostgreSQL + Grafana)
Coletar odds sem guardar em lugar nenhum é jogar trabalho fora. Eu comecei com SQLite porque é zero config — o banco é um arquivo só. Pra maioria dos casos, é mais do que suficiente.
Quando migrar pra PostgreSQL
Se você tá coletando odds de mais de 5 esportes com frequência de 15 em 15 minutos, o SQLite vai começar a ficar lento. Nesse ponto, migra pro PostgreSQL. A mudança é uma linha de código — troca a connection string e pronto.
E se quiser visualizar os dados, o Grafana conecta direto no PostgreSQL. Dá pra montar dashboards com movimentação de odds ao vivo, alertas quando uma odd cai ou sobe demais, e gráficos de comparação entre casas. É bonito demais quando funciona.
Query útil: encontrando as melhores odds
Precauções legais e éticas
Vou ser honesto aqui porque muita gente ignora essa parte. Scraping de sites de apostas pode violar os termos de serviço dessas plataformas. Não é crime no Brasil — scraping de dados públicos é legal — mas a casa pode fechar sua conta se detectar acesso automatizado.
O caminho mais seguro é usar APIs oficiais sempre que possível. The Odds API, por exemplo, já faz o trabalho pesado pra você e distribui os dados de forma legal. Você paga pelo serviço e evita qualquer problema.
Boas práticas de scraping responsável
Respeite o robots.txt do site — se ele proíbe scraping, pense duas vezes
Não sobrecarregue os servidores. Use intervalos de pelo menos 5 segundos entre requests
Nunca faça scraping de dados pessoais de outros usuários
Use os dados pra análise pessoal, não pra revender ou distribuir
Prefira APIs oficiais sempre que disponíveis
Regulamentação de apostas no Brasil
Desde 2024, as apostas esportivas online são regulamentadas no Brasil. As casas que operam legalmente precisam de licença da Secretaria de Prêmios e Apostas. Isso é bom porque dá mais segurança pro apostador, mas também significa que as casas estão mais rígidas com automação.
Na prática: use as ferramentas de coleta de odds pra tomar decisões melhores. Não tente automatizar as apostas em si dentro da plataforma — isso quase certamente viola os termos de uso e pode resultar em bloqueio de conta e perda de saldo.
Montando o pipeline completo
Agora vamos juntar tudo num script que roda automaticamente. A ideia é simples: a cada 30 minutos, coleta odds, salva no banco, e se encontrar uma oportunidade boa, manda um alerta.
Próximos passos
Com esse pipeline rodando, você já tem a base pra qualquer estratégia de apostas baseada em dados. O próximo passo natural é adicionar análise de value betting — comparar as odds das casas com probabilidades calculadas por modelos estatísticos.
Dá pra evoluir esse projeto de várias formas: adicionar notificações via Telegram quando surgir uma arbitragem, criar um dashboard web com Streamlit, ou integrar com modelos de machine learning pra prever resultados. Mas começa pelo básico. Coleta funcionando, banco de dados rodando, e só depois vai adicionando camadas.
Checklist do projeto
Continue lendo
Como Usar IA para Ganhar em Apostas Esportivas
Descobri como usar IA e dados para ter vantagem nas apostas esportivas. Aqui está tudo que aprendi.
Bot de Apostas com Python e IA: Tutorial para Iniciantes
Crie um bot de apostas esportivas com Python. Coleta de odds, análise com IA e alerta automático.
Arbitragem Esportiva: Como Funciona e Vale a Pena em 2026
Arbitragem esportiva garante lucro? Entenda a matemática, veja exemplos reais e descubra por que as casas odeiam arbers.
Coolify + N8n
Infra self-hosted prática