Curso Grátis - Acessando A API Da Betfair - Conteudo Gratuito Academia Dos Bots
Curso Grátis - Acessando A API Da Betfair - Conteudo Gratuito Academia Dos Bots
Curso Grátis - Acessando A API Da Betfair - Conteudo Gratuito Academia Dos Bots
Importante - Este material é parte integrante da série de vídeos que encontra-se neste link
https://www.youtube.com/channel/UCvQwP2UX2b6Ov_F7eagUleQ
Para termos uma noção do que queremos acessar, vamos olhar a origem dos dados e entender como
ele está estruturado. Observando o site, logo de cara nos deparamos com uma infinidade de
informações.
Aqui, vamos fazer o nosso primeiro filtro: queremos obter as cotações (odds) de algum mercado (gols,
Match Odds, cantos, etc.) de um jogo (evento) pertencente a uma competição de algum esporte.
Percebeu a relação? Para acessar os dados, assim que entender esta relação nosso trabalho ficará
muito mais simples.
Na Betfair, teremos uma sequência de etapas a serem realizadas e que estão diretamente relacionadas
com a relação citada anteriormente. Abaixo, vamos entender este processo por meio de um diagrama:
Legal este fluxo né!? Vamos colocar a mão na massa?!
username = "seu_email_betfair"
pw = "sua_senha_betfair"
app_key = "sua_appkey"
Imprimir em PDF
<LoginResource>
Listando Eventos
# Definindo os filtros de Mercado
filtros_mercado = betfairlightweight.filters.market_filter(
event_type_ids=['1'], # ID para Futebol
competition_ids=[321319], #Competições
market_start_time={
'to': (datetime.datetime.utcnow() + datetime.timedelta(days=1)).strftime("%Y-%m-
%dT%TZ")
}
)
planilha_eventos_futebol = pd.DataFrame({
'NomeEvento': [obj_evento.event.name for obj_evento in eventos_futebol],
'IDEvento': [obj_evento.event.id for obj_evento in eventos_futebol],
'LocalEvento': [obj_evento.event.venue for obj_evento in eventos_futebol],
'CodPais': [obj_evento.event.country_code for obj_evento in eventos_futebol],
'TimeZone': [obj_evento.event.time_zone for obj_evento in eventos_futebol],
'DataAbertura': [obj_evento.event.open_date for obj_evento in eventos_futebol],
'TotalMercados': [obj_evento.market_count for obj_evento in eventos_futebol],
'DataLocal':
[obj_evento.event.open_date.replace(tzinfo=datetime.timezone.utc).astimezone(tz=None)
for obj_evento in eventos_futebol]
})
planilha_eventos_futebol
Remo v 2021-11-15
0 31065570 None BR GMT 29
Goias 23:00:00
Brusque FC 2021-11-15
1 31065555 None BR GMT 29
v CRB 19:00:00
Nautico PE v
2021-11-15
2 Sampaio 31065571 None BR GMT 29
21:00:00
Correa FC
Vila Nova v
2021-11-15
3 Vasco da 31065574 None BR GMT 29
21:00:00
Gama
Botafogo v 2021-11-15
4 31065572 None BR GMT 29
Operario PR 19:00:00
Londrina v 2021-11-15
5 31065573 None BR GMT 29
Ponte Preta 19:00:00
Listando Mercados
id_evento = 31065573
filtro_catalogo_mercados = betfairlightweight.filters.market_filter(event_ids=
[id_evento])
catalogos_mercado = trading.betting.list_market_catalogue(
filter=filtro_catalogo_mercados,
max_results='100',
sort='FIRST_TO_START',
market_projection=['RUNNER_METADATA']
)
planilha_mercados
NomeMercado IDMercado TotalCorrespondido Home Home_id
Total Goals
1 1.190674823 73.33000 Odd 955466
Odd/Even
First Half
3 1.190674825 1431.10828 Under 0.5 Goals 5851482 Over 0.5
Goals 0.5
Over/Under
4 1.190674818 0.00000 Under 7.5 Goals 1485572 Over 7.5
7.5 Goals
Over/Under
5 1.190674819 0.00000 Under 8.5 Goals 2407528 Over 8.5
8.5 Goals
First Half
6 1.190674820 1172.18005 Under 2.5 Goals 47972 Over 2.5
Goals 2.5
Both teams to
7 1.190674821 3296.69681 Yes 30246
Score?
Asian
8 1.190674779 6717.90796 Londrina 4525642 Ponte
Handicap
Double
9 1.190674813 88.65597 Home or Draw 6384646 Draw or
Chance
Londrina Win
12 1.190674816 0.00000 Yes 30246
to Nil
Ponte Preta
13 1.190674817 0.00000 Yes 30246
Win to Nil
Over/Under
15 1.190674778 4918.60975 Under 3.5 Goals 1222344 Over 3.5
3.5 Goals
Half Time/Full
16 1.190674835 1364.08466 Londrina/Londrina 7074784 Londrina
Time
Over/Under
17 1.190674836 3010.34316 Under 1.5 Goals 1221385 Over 1.5
1.5 Goals
Londrina
18 1.190674837 0.00000 Yes 30246
Clean Sheet
Ponte Preta
19 1.190674838 0.00000 Yes 30246
Clean Sheet
Over/Under
20 1.190674830 109.62835 Under 5.5 Goals 1485567 Over 5.5
5.5 Goals
Over/Under
22 1.190674832 3823.93951 Under 2.5 Goals 47972 Over 2.5
2.5 Goals
Over/Under
23 1.190674833 10483.40346 Under 4.5 Goals 1222347 Over 4.5
4.5 Goals
Half Time
24 1.190674834 358.14372 0-0 1
Score
Over/Under
25 1.190674826 1942.51170 Under 0.5 Goals 5851482 Over 0.5
0.5 Goals
First Half
26 1.190674827 732.56670 Under 1.5 Goals 1221385 Over 1.5
Goals 1.5
Over/Under
27 1.190674828 1.02662 Under 6.5 Goals 2542448 Over 6.5
6.5 Goals
price_filter = betfairlightweight.filters.price_projection(
price_data=['EX_BEST_OFFERS'],
ex_best_offers_overrides=order_filter
)
#Lista de runners
runners = market_books[0].runners
back = []
for i in range(0,3):
try:
back.append([runner_book.ex.available_to_back[i].price
if runner_book.ex.available_to_back
else 1.01
for runner_book
in runners])
except:
back.append([1.01,1.01])
lay = []
for i in range(0,3):
try:
lay.append([runner_book.ex.available_to_lay[i].price
if runner_book.ex.available_to_lay
else 1.01
for runner_book
in runners])
except:
lay.append([[1.01,1.01,1.01]])
df_back = pd.DataFrame(back,columns=['Casa','Visitante','Empate'])
df_back['data'] = datetime.datetime.now()
df_back['Jogo'] =
planilha_eventos_futebol.query('IDEvento=="31065573"').NomeEvento.values[0]
df_final = df_final.append(df_back)
time.sleep(2)
Previous Next
Apresentação Como analisar dados de Futebol