<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetch_entries(self):
 """Fetch data and parse it to build a list of broadcast entries."""

        current_time = ''

        data = []
        for row in self.get_rows():
            # Stop fetching data if limit has been met
            if exceeded_limit(self.limit, len(data)):
                break

            entry = row.find_all('td')
            entry_dict = {}

            show_time = entry[0].string
            if show_time and show_time != current_time:
                current_time = show_time
            if not show_time:
                show_time = current_time
            entry_dict['time'] = show_time

            show_string = entry[1].string.split('(')
            show = show_string[0][:-1]
            net = self._get_net(show_string)
            if not self._match_query(show, net):
                continue

            entry_dict['show'] = show
            entry_dict['net'] = net
            entry_dict['viewers'] = entry[3].string.strip('*')
            entry_dict['rating'], entry_dict['share'] = self._get_rating(entry)

            # Add data to initialize broadcast entry
            data.append(Entry(**entry_dict))

        return data