예제 #1
0
def add_names_to_db(competition, sport="football", *sites):
    """
    Ajoute à la base de données les noms d'équipe/joueur pour une competition donnée sur tous les
    sites
    """
    try:
        id_competition, formated_name = get_id_formated_competition_name(
            competition, sport)
    except TypeError:
        print("Competition inconnue")
        return {}
    print(formated_name)
    if competition == sport or "Tout le" in competition:
        import_teams_by_sport(sport)
    else:
        import_teams_by_url("http://www.comparateur-de-cotes.fr/comparateur/" +
                            sport + "/a-ed" + str(id_competition))
    if not sites:
        sites = [
            'betclic', 'betstars', 'bwin', 'france_pari', 'joa', 'netbet',
            'parionssport', 'pasinobet', 'pmu', 'unibet', 'winamax', 'zebet'
        ]
    selenium_sites = {
        "betstars", "bwin", "joa", "parionssport", "pasinobet", "unibet"
    }
    selenium_required = (inspect.currentframe().f_back.f_code.co_name
                         == "<module>"
                         and (selenium_sites.intersection(sites) or not sites))
    if selenium_required:
        selenium_init.start_selenium()
    for site in sites:
        print(site)
        url = get_competition_url(competition, sport, site)
        if url:
            try:
                teams = parse_and_add_to_db(site, sport, url)
                if teams:
                    sportsbetting.TEAMS_NOT_FOUND.append(teams)
            except KeyboardInterrupt:
                start = time.time()
                print("Recommencez pour arrêter le parsing")
                while time.time() - start < 0.5:
                    time.sleep(0.5)
            except urllib3.exceptions.MaxRetryError:
                selenium_init.DRIVER.quit()
                print("Redémarrage de selenium")
                selenium_init.start_selenium()
                teams = parse_and_add_to_db(site, sport, url)
                if teams:
                    sportsbetting.TEAMS_NOT_FOUND.append(teams)
            except selenium.common.exceptions.TimeoutException:
                pass
            except urllib.error.HTTPError:
                pass
    if selenium_required:
        selenium_init.DRIVER.quit()
예제 #2
0
def parse_buteurs():
    """
    Stocke les cotes des duels de buteurs disponibles sur Betclic
    """
    competitions = ["france ligue 1", "espagne liga", "italie serie", "allemagne bundesliga"]
    list_odds = []
    for competition in competitions:
        print(get_id_formatted_competition_name(competition, "football")[1])
        url = get_competition_url(competition, "football", "betclic")
        list_odds.append(parse_buteurs_betclic(url))
    if inspect.currentframe().f_back.f_code.co_name != "<module>":
        return merge_dicts(list_odds)
    sportsbetting.ODDS["buteurs"] = merge_dicts(list_odds)
예제 #3
0
def parse_buteurs():
    """
    Stocke les cotes des duels de buteurs disponibles sur Betclic
    """
    competitions = [
        "france ligue 1", "espagne liga", "italie serie",
        "allemagne bundesliga"
    ]
    list_odds = []
    for competition in competitions:
        print(get_id_formated_competition_name(competition, "football")[1])
        url = get_competition_url(competition, "football", "betclic")
        list_odds.append(parse_buteurs_betclic(url))
    if inspect.currentframe().f_back.f_code.co_name == "<module>":
        try:
            toaster = ToastNotifier()
            toaster.show_toast("Sports-betting", "Fin du parsing")
        except NameError:
            subprocess.Popen(['notify-send', "Fin du parsing"])
    if inspect.currentframe().f_back.f_code.co_name != "<module>":
        return merge_dicts(list_odds)
    sportsbetting.ODDS["buteurs"] = merge_dicts(list_odds)