def METHOD_NAME(self):
    no_scheduled_ct = 0
    for chamber in ("upper", "lower"):
        try:
            url = urls[chamber]
        except KeyError:
            return  # Not for us.
        html = self.get(url).text
        doc = lxml.html.fromstring(html)
        doc.make_links_absolute(url)
        if doc.xpath('//div[contains(text(), "No hearings currently scheduled")]'):
            self.info(f"No hearings in {chamber}")
            no_scheduled_ct += 1
            continue
        tables = doc.xpath("//table[@width='550']")
        events = set()
        for table in tables:
            meetings = table.xpath(".//a")
            for meeting in meetings:
                event, name = self.scrape_page(
                    meeting.attrib["href"], chamber_names[chamber]
                )
                if event and name:
                    if name in events:
                        self.warning(f"Duplicate event {name}")
                        continue
                    events.add(name)
                    yield event
    if no_scheduled_ct == 2:
        raise EmptyScrape