import requests
from bs4 import BeautifulSoup
import numpy as np
class HTMLScraper:
def __init__(self, website):
self.website = website
def get_html(self):
response = requests.get(self.website)
return response.content
class DataExtractor:
def __init__(self, html):
self.html = html
def extract_loser_odds(self):
soup = BeautifulSoup(self.html, 'html.parser')
loser_odds = soup.find_all('div', class_='loser-odds')
return loser_odds
class ModelTrainer:
def __init__(self, loser_odds):
self.loser_odds = loser_odds
def estimate_initial_value(self):
initial_value = np.mean(self.loser_odds)
return initial_value
def optimize_r_n(self):
r_n = 1.0
for loser_odd in self.loser_odds:
r_n *= loser_odd
return r_n
class PredictionGenerator:
def __init__(self, loser_odds, model_trainer):
self.loser_odds = loser_odds
self.model_trainer = model_trainer
def estimate_s_n(self):
s_n = 0.0
for loser_odd in self.loser_odds:
s_n += loser_odd
return s_n
def estimate_next_side(self):
next_side = self.model_trainer.estimate_initial_value() *
self.model_trainer.optimize_r_n() / self.estimate_s_n()
return next_side
if __name__ == '__main__':
# Instance des classes
html_scraper = HTMLScraper('https://1xbet.com/en/crash/')
html = html_scraper.get_html()
data_extractor = DataExtractor(html)
loser_odds = data_extractor.extract_loser_odds()
model_trainer = ModelTrainer(loser_odds)
prediction_generator = PredictionGenerator(loser_odds, model_trainer)
next_side = prediction_generator.estimate_next_side()
print(next_side)