def parse_stats(self, media_page):
    """Parses the DOM and returns media statistics attributes.

    :type media_page: :class:`bs4.BeautifulSoup`
    :param media_page: MAL media stats page's DOM

    :rtype: dict
    :return: media stats attributes.

    """
    media_info = self.parse_sidebar(media_page)
    verb_progressive = self.consuming_verb + u'ing'
    status_stats = {
      verb_progressive: 0,
      'completed': 0,
      'on_hold': 0,
      'dropped': 0,
      'plan_to_' + self.consuming_verb: 0
    }
    try:
      consuming_elt = media_page.find(u'span', {'class': 'dark_text'}, text=verb_progressive.capitalize())
      if consuming_elt:
        status_stats[verb_progressive] = int(consuming_elt.nextSibling.strip().replace(u',', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      completed_elt = media_page.find(u'span', {'class': 'dark_text'}, text="Completed:")
      if completed_elt:
        status_stats[u'completed'] = int(completed_elt.nextSibling.strip().replace(u',', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      on_hold_elt = media_page.find(u'span', {'class': 'dark_text'}, text="On-Hold:")
      if on_hold_elt:
        status_stats[u'on_hold'] = int(on_hold_elt.nextSibling.strip().replace(u',', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      dropped_elt = media_page.find(u'span', {'class': 'dark_text'}, text="Dropped:")
      if dropped_elt:
        status_stats[u'dropped'] = int(dropped_elt.nextSibling.strip().replace(u',', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      planning_elt = media_page.find(u'span', {'class': 'dark_text'}, text="Plan to " + self.consuming_verb.capitalize() + ":")
      if planning_elt:
        status_stats[u'plan_to_' + self.consuming_verb] = int(planning_elt.nextSibling.strip().replace(u',', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    media_info[u'status_stats'] = status_stats

    score_stats = {
      1: 0,
      2: 0,
      3: 0,
      4: 0,
      5: 0,
      6: 0,
      7: 0,
      8: 0,
      9: 0,
      10: 0
    }
    try:
      score_stats_header = media_page.find(u'h2', text='Score Stats')
      if score_stats_header:
        score_stats_table = score_stats_header.find_next_sibling(u'table')
        if score_stats_table:
          score_stats = {}
          score_rows = score_stats_table.find_all(u'tr')
          for i in xrange(len(score_rows)):
            score_value = int(score_rows[i].find(u'td').text)
            score_stats[score_value] = int(score_rows[i].find(u'small').text.replace(u'(u', '').replace(u' votes)', ''))
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    media_info[u'score_stats'] = score_stats

    return media_info
Parses the DOM and returns media statistics attributes.

    :type media_page: :class:`bs4.BeautifulSoup`
    :param media_page: MAL media stats page's DOM

    :rtype: dict
    :return: media stats attributes.