Ejemplo n.º 1
0
    def gen_players_info(self):
        team = self.soup.find('div', {'id': 'div_roster'})
        headers = [PLS_HEADERS[th.text.strip()] for th
                   in team.thead.find_all('th')[1:]]
        rows = [row for row in team.tbody.find_all('tr')]

        self.players_ = {}
        for player in rows:
            player = [i.text for i in player.find_all('td')]
            player = dict(zip(headers, player))
            player['height'] = feets_to_meters(float(player['height'].replace('-', '.')))

            if player.get('birth_date'):
                player['birth_date'] = str(gen_date(player.get('birth_date')))
            if player.get('experience'):
                player['experience'] = 0 if player.get('experience') == 'R' else int(player.get('experience'))
            if player.get('class'):
                player_class = player.get('class')
                # there is a bug in b-reference and in players like Quron Davis C is actually SO
                exp_mapping = {'FR': 0, 'SO': 1, 'JR': 2, 'SR': 3, 'GR': 4, 'C': 1}
                if player_class not in ['FR', 'SO', 'JR', 'SR', 'GR']:
                    logger.info('PLAYER {0} HAS STRANGE CLASS'.format(player))
                player['experience'] = exp_mapping[player_class]

            self.players_[player['name']] = player
Ejemplo n.º 2
0
    def gen_players_info(self):
        team = self.soup.find('div', {'id': 'div_roster'})
        headers = [th.text for th in team.find_all('th')]
        headers = [PLS_HEADERS[h.strip()] for h in headers]
        rows = [row for row in team.tbody.find_all('tr')]

        self.players_ = {}
        for player in rows:
            player = [i.text for i in player.find_all('td')]
            player = dict(zip(headers, player))
            player['height'] = feets_to_meters(float(player['height'].replace('-', '.')))
    
            if player.get('birth_date'):
                player['birth_date'] = str(gen_date(player.get('birth_date')))
            if player.get('experience'):
                player['experience'] = 0 if player.get('experience') == 'R' else int(player.get('experience'))
            if player.get('class'):
                player_class = player.get('class')
                # there is a bug in b-reference and in players like Quron Davis C is actually SO
                exp_mapping = {'FR': 0, 'SO': 1, 'JR': 2, 'SR': 3, 'GR': 4, 'C': 1}
                if player_class not in ['FR', 'SO', 'JR', 'SR', 'GR']:
                    logger.info('PLAYER {0} HAS STRANGE CLASS'.format(player_name))
                player['experience'] = exp_mapping[player_class]

            self.players_[player['name']] = player