Example #1
0
 def __extract_team_squad(self, squad_block):
     squad = []
     player_blocks = squad_block.find_all(
         'a', class_='margin0 text-black text-hvr-underline')
     for player_block in player_blocks:
         player_id = player_block.get('href').split("/")[2]
         player_name = player_block.text
         player_name = Common.correct_player_name(player_name)
         squad.append(Player(player_name, player_id))
     return squad
Example #2
0
    def __extract_innings_batting_scores(self, innings_batting_block):
        batsman_score_blocks = innings_batting_block.find_all('div', class_='cb-col cb-col-100 cb-scrd-itms')
        batsman_objects = []
        for batsman_score_block in batsman_score_blocks:
            player_info_block = batsman_score_block.find('div', class_='cb-col cb-col-27 ')
            if player_info_block is not None:
                player_name = Common.correct_player_name(player_info_block.text)
                runs_scored = batsman_score_block.find('div',
                                                       class_='cb-col cb-col-8 text-right text-bold').text.strip()
                # (balls, fours, sixes, strikeRate)
                other_score_blocks = batsman_score_block.find_all('div', class_='cb-col cb-col-8 text-right')
                balls_played = other_score_blocks[0].text.strip()
                num_fours = other_score_blocks[1].text.strip()
                num_sixes = other_score_blocks[2].text.strip()

                batsman_objects.append(BatsmanScore(player_name, runs_scored, balls_played, num_fours, num_sixes))
        return batsman_objects
Example #3
0
    def __extract_innings_bowling_scores(self, innings_bowling_block):
        bowler_score_blocks = innings_bowling_block.find_all('div', class_='cb-col cb-col-100 cb-scrd-itms ')
        bowler_objects = []
        for bowler_score_block in bowler_score_blocks:
            player_info_block = bowler_score_block.find('div', class_='cb-col cb-col-40')
            if player_info_block is not None:
                player_name = Common.correct_player_name(player_info_block.text)
                wickets_taken = bowler_score_block.find('div',
                                                        class_='cb-col cb-col-8 text-right text-bold').text.strip()
                # Runs Given and Economy
                runs_and_economy_blocks = bowler_score_block.find_all('div', class_='cb-col cb-col-10 text-right')
                runs_given = runs_and_economy_blocks[0].text.strip()
                economy = runs_and_economy_blocks[1].text.strip()
                # Overs Bowled, Maiden Overs, No Balls, Wide Balls
                other_score_items = bowler_score_block.find_all('div', class_='cb-col cb-col-8 text-right')
                overs_bowled = other_score_items[0].text.strip()

                if len(economy) != 0:
                    # Reason : Wasim Jaffer : https://www.cricbuzz.com/live-cricket-scorecard/19085/vidarbha-vs-chhattisgarh-group-d-ranji-trophy-2017-18
                    bowler_objects.append(BowlerScore(player_name, overs_bowled, wickets_taken, runs_given, economy))
        return bowler_objects
Example #4
0
 def __extract_match_squad(self, soup, series_squad_ref):
     squad_tags = soup.find_all('div',
                                {"class" : ["cb-col cb-col-100 cb-minfo-tm-nm",
                                            "cb-col cb-col-100 cb-minfo-tm-nm cb-minfo-tm2-nm"]})
     team_title = ""
     for squad_tag in squad_tags:
         player_blocks = squad_tag.find_all('a', class_='margin0 text-black text-hvr-underline')
         if len(player_blocks) == 0:
             team_title = squad_tag.text
             if "Squad" in team_title :
                 team_title = team_title.split("Squad")[0].strip()
                 self.__match_squad[team_title] = {}
                 if team_title not in series_squad_ref.keys():
                     series_squad_ref[team_title] = {}
         else:
             if len(team_title) == 0 :
                 raise Exception("match_link : {}".format(self.__match_link))
             else:
                 for player_block in player_blocks:
                     player_id = player_block.get('href').split("/")[2]
                     player_name = Common.correct_player_name(player_block.text)
                     if player_name not in series_squad_ref[team_title].keys():
                         series_squad_ref[team_title][player_name] = Player(player_name, player_id)
                     self.__match_squad[team_title][player_name] = series_squad_ref[team_title][player_name]