Você está na página 1de 28

Criador do curso em e-book: https://www.youtube.

com/@programandocomandersonsouza
Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza
Anderson dos Santos Souza

Criando Robôs
para Sites de
Apostas

Com a linguagem de Programação Javascript e


NodeJS, desenvolva seus próprios robôs e
aplique suas estratégias na Bet365, Betano,
BetNacional, BetFair, entre outros.

1ª Edição
Campo Grande/MS
Edição do autor

2023

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


Sumário
AGRADECIMENTOS ............................................................................................................ 6
ATENÇÃO ......................................................................................................................... 8
REQUISITOS .................................................................................................................... 10
INTRODUÇÃO ................................................................................................................... 1
AMBIENTE E INSTALAÇÕES ............................................................................................... 3
COMO FUNCIONA UM SITE? ............................................................................................. 7
DOCUMENT OBJECT MODEL ................................................................................................... 10
CRIANDO UMA PÁGINA DE INTERNET ............................................................................. 15
RESULTADO DA PÁGINA HTML ............................................................................................... 17
VISITANDO UM SITE REAL ...................................................................................................... 22
EXIBIR CÓDIGO FONTE DA PÁGINA ......................................................................................... 23
ESTRUTURA BASE DOS PROJETOS ................................................................................... 27
BIBLIOTECA DE TESTE ............................................................................................................. 28
INICIANDO UM PROJETO ........................................................................................................ 29
CÓDIGO FONTE DO PROJETO BASE ......................................................................................... 32
NOSSO PRIMEIRO ROBÔ: BET365, BETANO, BETNACIONAL, BETFAIR, PIXBET ................. 41
RESULTADO DO NOSSO ROBÔ ................................................................................................ 45
INVESTIGANDO UM SITE DE APOSTAS - BET365............................................................... 48
CLICANDO DE FORMA AUTOMÁTICA ...................................................................................... 53
JOGOS AO VIVO - LISTANDO TODOS OS JOGOS AO VIVO EM TEMPO REAL - BET365......... 62
RESULTADO DO SCRAPING ..................................................................................................... 63
CÓDIGO FONTE ...................................................................................................................... 66
ESPORTE VIRTUAL - SPEEDWAY BUSCANDO RESULTADOS ............................................ 79
RESULTADO DO SPEEDYWAY .................................................................................................. 80
CÓDIGO FONTE ...................................................................................................................... 81
JOGOS AO VIVO - ACESSANDO E PERCORRENDO TODAS AS PARTIDAS UMA A UMA -
BET365 ........................................................................................................................... 93
INICIANDO O PROJETO ........................................................................................................... 95
CÓDIGO FONTE ...................................................................................................................... 95
JOGOS AO VIVO - ACESSANDO E PERCORRENDO TODAS AS PARTIDAS UMA A UMA
BETANO ....................................................................................................................... 101
INICIANDO O PROJETO NA BETANO ...................................................................................... 101
CÓDIGO FONTE .................................................................................................................... 102
FUTEBOL VIRTUAL -
Scraping) OS DADOS NA BET365 ................................................................................... 113

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


INICIANDO O PROJETO ......................................................................................................... 114
RESULTADO DO WEB SCRAPING ........................................................................................... 115
CÓDIGO FONTE .................................................................................................................... 117
EXPLICANDO O CÓDIGO FONTE ............................................................................................ 121
UTILIZANDO RECURSÃO ....................................................................................................... 122
INVESTIGANDO .................................................................................................................... 129
RESUMO DO NOSSO ROBÔ................................................................................................... 134
CRIAR ROBÔ DO TELEGRAM - ENVIAR E EDITAR MENSAGENS COM SEU BOT PARA O SEU
GRUPO DO TELEGRAM.................................................................................................. 136
IDENTIFICANDO CHAT NO TELEGRAM ................................................................................... 144
CÓDIGO FONTE .................................................................................................................... 146
INICIANDO O PROJETO DO BOT ............................................................................................ 147
ENVIANDO MENSAGEM PARA O TELEGRAM ......................................................................... 154
ALTERANDO MENSAGEM DO TELEGRAM .............................................................................. 156
BÔNUS - GRATUITO ...................................................................................................... 159
CONCLUSÃO DO CURSO ................................................................................................ 161

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


A melhor estratégia é a sua estratégia.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


ATENÇÃO

Este curso tem fins meramente didáticos e


de aprendizagem quanto ao uso da biblioteca de
testes Playwright da Microsoft.
Utilizando-se desta biblioteca em conjunto
com a linguagem de programação Javascript, não
há aqui nenhuma pretensão de se apropriar,
utilizar ou extrair quaisquer informações de
sites de terceiros aqui mencionados, menos
ainda de forma a causar prejuízo de qualquer
tipo.
Portanto, quaisquer formas de uso do
conhecimento adquirido neste curso são de total
responsabilidade do leitor. Recomendamos
fortemente que haja com responsabilidade.
Lembre-se: "Com grandes poderes vêm grandes
responsabilidades".

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


DIREITOS RESERVADOS

Todos os direitos reservados e protegidos


pela Lei 9.610 de 19/02/1998.
É proibida a reprodução desta obra, mesmo
que parcial ou por qualquer processo.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


REQUISITOS

Os requisitos para fazer esse curso são


poucos, mas essenciais: Lógica de programação,
Javascript e HTML.
Para quem não tem absolutamente nenhuma
noção de programação, provavelmente será
necessário buscar um conhecimento básico de
Javascript, HTML e lógica, antes de prosseguir,
o que conseguirá gratuitamente e com qualidade
na internet.
Ainda que este curso de criação de robô não
seja considerado avançado em termos de
necessidade de conhecimentos prévios, muita
coisa básica de programação poderá deixar de
ser abordada, pois não é o foco deste e-book.
Para auxiliá-los, tenho criado alguns vídeos
gratuitos no meu canal no Youtube que ajudarão
aqueles que ainda estão iniciando na
programação a ter o conhecimento básico para
concluir este curso com satisfação. Tem um

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


curso relâmpago de Javascript lá. Deixem suas
dúvidas nos comentários se precisarem.
Mas não se preocupe, pois realmente é só o
básico que precisará. A ideia aqui é que o
curso seja o mais didático possível de forma
que você seja capaz de replicar os projetos
mesmo sem dominar realmente os requisitos
básicos.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza


INTRODUÇÃO

O que aprenderão neste curso escrito em


formato de e-book é como desenvolver seus
próprios robôs utilizando a linguagem de
programação Javascript e aplicar as suas
próprias estratégias nos sites de apostas.
No entanto, vai além disso.
Apesar do foco do curso ser no site de
apostas da bet365, se você entender como é a
base do desenvolvimento de um robô e do que se
trata efetivamente a automação, que serão
tratados como sinônimos aqui, poderão utilizar
este conhecimento para expandir seus horizontes,
aplicando automação em qualquer site de apostas.
Indo mais adiante, com o aprendizado que
obterão aqui, poderão ir além dos sites de
apostas em seus projetos pessoais, terão
habilidade de automatizar tarefas no trabalho ou
nos seus estudos e que tomam tanto do seu tempo
já escasso.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 1


Perceberão que serão capazes de
identificarem oportunidades de automatizar
atividades que não imaginariam que seriam
possíveis antes.
Assim, com este e-book que está em suas mãos
agora, tenho a pretensão de capacitá-los para
que iniciem neste mundo da programação de robôs
e automação de forma que possam usar esses
conhecimentos em seus projetos atuais e futuros.
Apenas tenham em mente que não será possível
esgotar todo o assunto, mas o que posso garantir
é que se dedicando a leitura e aos projetos aqui
desenvolvidos, terão uma base de conhecimento em
desenvolvimento de robôs nos sites de apostas
que raramente vai encontrar todo reunido em
qualquer outro lugar, como foi feito aqui.
Estará disponível em repositório os projetos
fontes que serão desenvolvidos no curso e assim
poderão usá-los também como fontes de
informações e estudos.
Agora, mãos no teclado e sigamos com nossos
projetos de robôs.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 2


AMBIENTE E INSTALAÇÕES

Apesar da vontade de já iniciarmos logo com


um projeto real, precisaremos preparar primeiro
o nosso ambiente para que possamos iniciar o
desenvolvimento dos nossos projetos. Caso já
tenham tudo pronto é só pular este capítulo.
Teremos que instalar o Node JS, que é um
interpretador que permite a execução de
Javascript no backend, ou seja, fora de um
navegador.
Siga as instruções conforme o seu sistema
operacional: https://nodejs.org/en/download/package-

manager/
Segue o link para instalação da versão mais
atual. Basta fazer o download e instalar:
https://nodejs.org/en/
Além disso, vamos usar o Visual Studio Code,
que é um editor de código fonte (IDE). Mas vocês
poderão utilizar qualquer outro de sua
preferência.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 3


Segue o link para instalação da versão mais
atual:
https://code.visualstudio.com/download
Uma observação importante antes de
prosseguirmos é saber sobre o requisito do
sistema operacional para uso da biblioteca
Playwright.
Não há suporte oficial para a maioria das
versões do Linux, já para Windows ou IOS são
perfeitamente compatíveis. Atenção para aspectos
de rede, proxy e afins caso estejam em uma rede
durante o desenvolvimento, isso pode causar
bloqueios no uso.
Por fim, segue o link do pacote da biblioteca
do Playwright para que vocês possam tirar
dúvidas ou verificar a documentação se quiserem
se aprofundar.
https://www.npmjs.com/package/playwright
Para que tenham certeza sobre a
compatibilidade do seu sistema com o Playwright,
recomendo que façam um teste e executem o projeto
da amostra do curso. Construam o primeiro
projeto apresentado e vejam se o seu sistema

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 4


COMO FUNCIONA UM SITE?

Para que possamos fazer um robô que atue em


um site, vamos conversar um pouco sobre como é
que um site basicamente funciona e disponibiliza
o seu conteúdo aos visitantes, especificamente
daquilo que está disponível visualmente.
É importante que entendam de maneira geral
como funcionam as páginas web para que possam
desenvolver seus próprios robôs, automatizando
tarefas maçantes ou tarefas que exijam muito do
seu tempo, ou mais ainda, que sejam complexas
para manter um padrão repetitivo.
As páginas de internet são constituídas
essencialmente por HTML (Linguagem de Marcação
de Hipertexto), CSS (Folha de Estilos em
Cascata), e temos ainda o Javascript que dá mais
vida e dinamismo aos sites.
A linguagem HTML é considerada uma linguagem
de marcação, pois é formada por textos e códigos
especiais conhecidos como marcas ou tags. Esses

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 7


DOCUMENT OBJECT MODEL

Como podem observar na nossa lista de nós,


DOCUMENT_NODE, o window vem antes mesmo do
Document e não está representado na nossa imagem
acima.
A partir do comando window vocês têm acesso
a vários comandos e recursos do navegador em si
e como nosso objetivo é a página web e não no

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 10


No entanto, muitas vezes, a maior parte do
conteúdo não ficará disponível, assim, logo de
cara. Parte do conteúdo está oculto, e só é
carregado quando acionamos algum evento.
Por isso, por exemplo, quando desenvolvemos
o robô, simulamos justamente o que um humano
faria. Vamos percorrendo o site, fazemos login,
aguardamos a página carregar, voltamos, clicamos
em outro lugar, lemos uma informação, clicamos
em um botão e assim por diante.

EXIBIR CÓDIGO FONTE DA PÁGINA

Como neste site na imagem abaixo quando


clicamos em algum dos recursos da página, seja
um link do: Ao Vivo, E-Soccer, Futebol, Aviator
e assim por diante.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 23


NOSSO PRIMEIRO ROBÔ: BET365,
BETANO, BETNACIONAL, BETFAIR,
PIXBET

Testaremos nosso modelo de projeto básico.


Vamos fazer um robô que acesse o site de aposta,
que dê um printscreen na tela, também conhecido
como screenshot, e salve a imagem.
Para não ficarmos somente no básico e
aumentarmos um pouco a complexidade, nosso robô,
ao invés de um site, vamos percorrer cinco sites,
em sequência, fazendo exatamente essa tarefa e
salvando em arquivos de imagem separados.
Poderiam ser dezenas de sites, podem colocar as
suas ideias em prática.
Após o código completo, teremos a explicação
identificada pela linha comentada com número.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 41


CÓDIGO FONTE DO NOSSO PRIMEIRO ROBÔ

import {firefox, webkit, chromium} from 'playwright' //{01}

(async () =>{
const browser = await chromium.launch({ //{03}
headless: false //{04}
})

const page = await browser.newPage()


await page.goto('https://www.bet365.com/#/HO/')
await page.waitForLoadState('networkidle')
await page.screenshot({ path: `./1-printSites/bet365.png`}) //{09}

await page.goto('https://br.betano.com/')
await page.waitForLoadState('networkidle')
await page.screenshot({ path: `./1-printSites/betano.png`}) //{12}

await page.goto('https://betnacional.com/')
await page.waitForLoadState('networkidle')
await page.screenshot({ path: `./1-printSites/betnacional.png`}) //{15}

await page.goto('https://www.betfair.com/br')
await page.waitForLoadState('networkidle')
await page.screenshot({ path: `./1-printSites/betfair.png`}) //{18}

await page.goto('https://pixbet.com/')
await page.waitForLoadState('networkidle')
await page.screenshot({ path: `./1-printSites/pixbet.png`}) //{21}

await browser.close()

})();

Vamos analisar alguns pontos do código que


acabamos de criar. Lembrando que no modelo
padrão no capítulo anterior, nós explicamos
linha a linha o significado do código base que

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 42


vamos sempre utilizar. Portanto, focaremos
naquilo ainda não visto.
Observem comentário {03} que utilizamos o
navegador chromium, mas poderia ter sido
utilizado um dos outros dois (firefox, webkit).
É importante ressaltar que muitos sites, por
motivo de segurança, analisam a requisição e a
forma que estão sendo
carregar com determinado navegador da
biblioteca, portanto, testem os outros quando
for necessário.
Pela experiência que adquiri com os robôs que
já desenvolvi, o webkit é o que costuma ser menos
barrado ou limitado pelos sites de apostas,
portanto, recomendo que o usem caso os sites
bloquearem seu robô.
De volta a explicação, na linha {04}, mantive
o headless como false para que pudéssemos
visualizar o robô trabalhando e cumprindo nosso
objetivo definido no comentário {09}, que como
o próprio nome já diz: é um screenshot. Ali,

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 43


para cada um dos sites visitados, conforme
comentários {09; 12; 15; 18; 21}. Se abrirem as
imagens, verão a foto feita na tela de cada um
dos sites. Como esta abaixo, da Betano.

RESULTADO DO NOSSO ROBÔ

Esse foi só o nosso primeiro exemplo real de


robô, faremos exemplos mais avançados nos
capítulos seguintes e entenderemos um pouco mais
sobre a criação de robôs.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 45


Se tudo funcionou bem, do lado esquerdo do
painel vocês terão cinco imagens salvas com os
respectivos nomes. Por fim, cabe aqui uma
observação. Todas as vezes que executarem o
projeto, os arquivos de imagem serão
substituídos pelos prints salvos com mesmo nome.
Caso precisem que seja de outra forma,
poderão pensar em um looping que pegue a hora ou
incremente um número no momento de salvar. Isso

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 46


INVESTIGANDO UM SITE DE APOSTAS
- BET365

Aqui temos uma página de internet de um site


de apostas bastante conhecido.
Toda essa página que estão vendo é formada
essencialmente por HTML e CSS, mas nosso foco
aqui é no HTML, como falamos no começo do curso.
Essa fundação em HTML significa que o site
todo é composto por tags com seus respectivos
atributos, textos e apresentando dados. Esses
dados são em grande parte informações vindas do
Backend, que apesar de importante, vamos
abstrair, por estar fora do escopo do curso.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 48


ESPORTE VIRTUAL - SPEEDWAY
BUSCANDO RESULTADOS

Vamos dar uma pausa aqui do futebol ao vivo,


voltaremos no capítulo seguinte com um projeto
ainda mais interessante sobre o tema.
Agora, neste capítulo, vamos acessar um tipo
bem específico de esporte virtual de apostas que
muitos não conhecem, mas há muitos adeptos, o
Speedway da bet365. Se ainda não conhecem, podem
ver neste link:
https://www.bet365.com/#/AVR/B24/R^1

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 79


FUTEBOL VIRTUAL - PERCORRENDO
AS LIGAS, HORÁRIOS, ODD E
RASPANDO (web Scraping) OS
DADOS NA BET365

Neste nosso projeto, faremos muitas coisas,


mas se acompanharam e desenvolveram os robôs
anteriores, perceberão que apesar deste aqui
executar mais tarefas, é apenas um progresso
natural do que já aprendemos até então no curso.
Percebam que poderão conduzir assim também
as suas ideias. Pensem no que desejam
automatizar e desenvolvam aos poucos. Analisem
bem como abordarão suas estratégias e escrevam
parte por parte do seu robô.
Vamos apresentar o resultado que queremos com
este bot, e a seguir, todo o código. Na sequência
faremos toda explicação das novidades e dos
pontos relevantes.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 113


RESULTADO DO WEB SCRAPING

Pegamos o nome da liga, o tempo


correspondente da partida e a odd, sendo esta

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 115


EXPLICANDO O CÓDIGO FONTE

Agora, vamos a explicação do código fonte


completo.
Iniciamos criando duas constantes para
informar tempos que usaremos no decorrer do
projeto, {01 e 02}.
Criamos uma função, {03}, chamada callAll que
conterá todo o código do nosso robô e será
chamada no final para executar o bot.
No comentário {04} colocamos diretamente o
endereço do futebol virtual para não ficar muito
extenso o nosso código, mas poderíamos começar
da página principal e ir adicionando cliques
para chegar até aqui. Algo que já fizemos em
projetos anteriores.
A seguir, utilizamos o já conhecido método
para aguardar carregar informações da página:
waitForLoadState.
Lembrem-se que às vezes é preciso usar
métodos distintos para que o site possa carregar
os dados, ou ter tempo para coletar todas as

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 121


CRIAR ROBÔ DO TELEGRAM - ENVIAR
E EDITAR MENSAGENS COM SEU BOT
PARA O SEU GRUPO DO TELEGRAM

Como desenvolver seu próprio robô do


Telegram?
Neste capítulo final, iremos criar juntos um
dos bots mais pedidos no canal. Apesar de
relativamente simples, poderá ser explorado de
muitas formas e utilizados muitos dos recursos
que a API do Telegram nos disponibiliza
gratuitamente.
Segue o link da documentação para consultas
mais aprofundadas se tiver interesse:
https://core.telegram.org/api
Começamos primeiro abrindo nosso Telegram e
pesquisando por BotFather, conforme a imagem
abaixo. Vejam que o primeiro passo deste projeto
é diretamente no Telegram e não em nossa IDE. Ao
menos por enquanto.

Criador do curso em e-book: https://www.youtube.com/@programandocomandersonsouza 136

Você também pode gostar