def get_league_on_page(self):
        """
        get information of the league
        :return:
        """
        try:
            return Cache.get_element(self.league_data_stage, "CRAWL_LEAGUE_PAGE")
        except KeyError:
            pass

        if not self.soup:
            page = requests.get(self.link_league_to_check).text
            self.soup = BeautifulSoup(page, "html.parser")

        div_league = self.soup.find('div',
                                    {'class': 'mx-dropdown-container mx-flexbox mx-float-left mx-template-dropdown'})
        league_name = str(div_league.span.string).strip()
        leagues = League.read_by_name(league_name, like=True)
        league = None
        if len(leagues) == 0:
            # No league found, also with the name in the web page
            log.warning("No league found, also with the name in the web page ["+self.league_data_stage+"]")
        elif len(leagues) == 1:
            league = leagues[0]
        else:
            # too many leagues found
            log.warning("Too many leagues found [" + self.league_data_stage + "]")

        Cache.add_element(self.league_data_stage, league, "CRAWL_LEAGUE_PAGE")
        return league
예제 #2
0
def start_crawling():
    """

    :return:
    """
    c = Crawler()
    link_league_found = c.look_for_leagues()
    find_thesaurus_legues(link_league_found.values())

    for new_league_name in find_new_league_to_manage(
            link_league_found.values()):
        log.info("New league that can be managed [" + new_league_name + "]")

    for league_link, league_name in link_league_found.items():
        leagues = League.read_by_name(league_name, like=True)

        if len(leagues) == 0:
            log.debug("League by name not found [" + league_name + "]")

        elif len(leagues) == 1:
            league = leagues[0]
            print("Elaborating " + league.name + "...")
            cl = CrawlerLeague(league, league_link)
            cl.start_crawling()

        else:
            log.warning("Too many leagues by name found [" + league_name + "]")
예제 #3
0
def doTest():
    league = League.read_by_name("Italy", like=True)[0]
    exp = Experiment(0)
    exp.run(league,
            complete=True,
            **{
                "type_evaluation": 4,
                "ml_train_input_id": 5
            })
예제 #4
0
def search_by_name():
    user_input = input("Insert league name: ")
    leagues = League.read_by_name(user_input, like=True)

    if len(leagues) == 0:
        GuiUtil.print_att("No Leagues found", user_input)
    else:
        GuiUtil.show_list_answer(
            [get_league_str(league) for league in leagues],
            print_index=True,
            label="League by name",
            label_value=user_input)
예제 #5
0
def search_by_league():
    user_input = input("Insert league name: ")
    GuiUtil.print_info("Looking for", user_input)
    leagues = League.read_by_name(user_input, like=True)

    if len(leagues) == 0:
        GuiUtil.print_att("No leagues found with name", user_input)
    elif len(leagues) == 1:
        league = leagues[0]
        matches = league.get_matches(season=util.get_current_season(),
                                     ordered=True)
        for i, match in enumerate(matches):
            match_out = get_printable_match(match)
            GuiUtil.print_indent_answer(i + 1, match_out, True)
def search_by_league():
    user_input = input("Insert league name: ")
    leagues = League.read_by_name(user_input, like=True)

    if len(leagues) == 0:
        GuiUtil.print_att("No leagues found", user_input)
    elif len(leagues) == 1:
        teams = sorted(leagues[0].get_teams(),
                       key=lambda team: team.team_long_name)
        teams_to_print = [
            t.team_long_name + ": http://sofifa.com/team/" +
            str(t.team_fifa_api_id) for t in teams
        ]
        GuiUtil.show_list_answer(teams_to_print, print_index=True)
    else:
        GuiUtil.print_att("Too many leagues found", user_input)
예제 #7
0
def do_test_4():
    league = League.read_by_name("ita", like=True)[0]
    #for league in League.read_all():
    print(league.name)
    exp = Experiment(5)
    exp.run(league, complete=True, **{"type_evaluation": 1})