'Called by the parser on element open.'

def start(self, tag):

    attrs = dict(tag.attrib)
    tag_name = tag.tag
    handler = ('_handle_%s_tag_start' % tag_name)
    try:
        method = getattr(self, handler)
    except AttributeError:
        pass
    else:
        try:
            method(tag, tag_name, attrs)
        except Exception as ex:
            self._handle_exception(('parsing    %s    tag' % tag_name), ex)
    try:
        if (tag_name in self.TAGS_WITH_URLS):
            self._find_references(tag, tag_name, attrs)
    except Exception as ex:
        self._handle_exception('extracting    references', ex)
    try:
        if (tag_name == 'a'):
            self._find_emails(tag, tag_name, attrs)
    except Exception as ex:
        self._handle_exception('finding    emails', ex)
