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
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 + "]")
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 })
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)
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)
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})