Parses the DOM and returns character attributes in the main-content area.

    :type character_page: :class:`bs4.BeautifulSoup`
    :param character_page: MAL character page's DOM

    :rtype: dict
    :return: Character attributes.

def parse(self, character_page):
    """Parses the DOM and returns character attributes in the main-content area.

    :type character_page: :class:`bs4.BeautifulSoup`
    :param character_page: MAL character page's DOM

    :rtype: dict
    :return: Character attributes.

    """
    character_info = self.parse_sidebar(character_page)

    second_col = character_page.find(u'div', {'id': 'content'}).find(u'table').find(u'tr').find_all(u'td', recursive=False)[1]
    name_elt = second_col.find(u'div', {'class': 'normal_header'})

    try:
      name_jpn_node = name_elt.find(u'small')
      if name_jpn_node:
        character_info[u'name_jpn'] = name_jpn_node.text[1:-1]
      else:
        character_info[u'name_jpn'] = None
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      name_elt.find(u'span').extract()
      character_info[u'name'] = name_elt.text.rstrip()
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      description_elts = []
      curr_elt = name_elt.nextSibling
      while True:
        if curr_elt.name not in [None, u'br']:
          break
        description_elts.append(unicode(curr_elt))
        curr_elt = curr_elt.nextSibling
      character_info[u'description'] = ''.join(description_elts)
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    try:
      character_info[u'voice_actors'] = {}
      voice_actors_header = second_col.find(u'div', text=u'Voice Actors')
      if voice_actors_header:
        voice_actors_table = voice_actors_header.find_next_sibling(u'table')
        for row in voice_actors_table.find_all(u'tr'):
          # second column has va info.
          info_col = row.find_all(u'td')[1]
          voice_actor_link = info_col.find(u'a')
          name = ' '.join(reversed(voice_actor_link.text.split(u', ')))
          link_parts = voice_actor_link.get(u'href').split(u'/')
          # of the form: /people/82/Romi_Park
          person = self.session.person(int(link_parts[2])).set({'name': name})
          language = info_col.find(u'small').text
          character_info[u'voice_actors'][person] = language
    except:
      if not self.session.suppress_parse_exceptions:
        raise

    return character_info