def METHOD_NAME(self, response):
    """
    This page contains meetings in two different sections, which are formatted
    differently and contain some duplication. For this reason the meeting properties
    will be scraped from their separate sections, and only at the end converted into
    Meeting objects and yielded as a list with the 'yield from ...' behavior.
    """
    candidates = (
        list()
    )  # Elements will be dicts having Meeting property names as keys
    # Process the meetings presented in the "Commission Meetings" table:
    selector_str = "//h3/following-sibling::table/tbody/tr"
    for item in response.xpath(selector_str):
        if "<br>" in item.extract():
            # Requires special treatment. See _parse_malformed_row() for details.
            candidates.extend(self._parse_malformed_row(item, response))
            continue
        candidates.append(
            {
                "title": self._parse_title(item),
                "start": self._parse_start(item),
                "links": self._parse_links(item, response),
            }
        )
    # Process the meetings presented in "Commission Meeting Schedule for ...":
    selector_str = "(//h3/following-sibling::ul)[1]/li/text()"
    for item in response.xpath(selector_str):
        start = self._parse_start(item)
        if start is None:  # Skip this item if start time could not be determined
            continue
        # Skip if start date in the past, because captured above
        if start < datetime.now():
            continue
        candidates.append({"title": "Commission", "start": start, "links": []})
    last_year = datetime.today().replace(year=datetime.today().year - 1)
    meeting_list = []
    for elem in candidates:
        if not elem["start"] or (
            elem["start"] < last_year
            and not self.settings.getbool("CITY_SCRAPERS_ARCHIVE")
        ):
            continue
        meeting = Meeting(
            title=elem["title"],
            description="",
            classification=COMMISSION,
            start=elem["start"],
            end=None,
            all_day=False,
            time_notes="No start times given; past records indicate 6:30PM.",
            location=self.location,
            links=elem["links"],
            source=self.source,
            status=self._parse_status(elem["start"]),
        )
        meeting["id"] = self._get_id(meeting)
        meeting_list.append(meeting)
    yield from meeting_list