<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _list_records_internal(self, rtype=None, name=None, content=None, identifier=None):
 """ Filter and list DNS entries of domain zone on Easyname. Easyname shows each entry in a HTML table row and each attribute on a table column. Args: [rtype] (str):
 Filter by DNS rtype (e.g. A, TXT, MX, etc) [name] (str):
 Filter by the name of the DNS entry, e.g the domain for which a MX entry shall be valid. [content] (str):
 Filter by the content of the DNS entry, e.g. the mail server hostname for a MX entry. [identifier] (str):
 Filter by the easyname id of the DNS entry. Returns: list: A list of DNS entries. A DNS entry is an object with DNS attribute names as keys (e.g. name, content, priority, etc) and additionally an id. Raises: AssertionError: When a request returns unexpected or unknown data. """

        name = self._full_name(name) if name is not None else name
        if self._records is None:
            records = []
            rows = self._get_dns_entry_trs()

            for index, row in enumerate(rows):
                self._log('DNS list entry', row)
                try:
                    rec = {}
                    if row.has_attr('ondblclick'):
                        rec['id'] = int(row['ondblclick'].split(
                            'id=')[1].split("'")[0])
                    else:
                        rec['id'] = -index

                    columns = row.find_all('td')
                    rec['name'] = (columns[0].string or '').strip()
                    rec['type'] = (columns[1].contents[1] or '').strip()
                    rec['content'] = (columns[2].string or '').strip()
                    rec['priority'] = (columns[3].string or '').strip()
                    rec['ttl'] = (columns[4].string or '').strip()

                    if rec['priority']:
                        rec['priority'] = int(rec['priority'])

                    if rec['ttl']:
                        rec['ttl'] = int(rec['ttl'])
                except Exception as error:
                    errmsg = 'Cannot parse DNS entry ({}).'.format(error)
                    LOGGER.warning(errmsg)
                    raise AssertionError(errmsg)
                records.append(rec)
            self._records = records

        records = self._filter_records(self._records, rtype, name, content, identifier)
        LOGGER.debug('Final records (%d): %s', len(records), records)
        return records