human
Write me a the Python program you requested given the following:
I am working on the file "Scrapy_nb/CPL notebook.ipynb".
The first task is:
Define Spider
Can you write Python program for it?
assistant
#Here is the Python program you requested.

class CplSpider(scrapy.Spider):
    name = "cpl"
    start_urls = [
        'https://cpl.org/board-agendas/'
    ]
    custom_settings = {
        'LOG_LEVEL': logging.WARNING,
        'ITEM_PIPELINES': {'__main__.JsonWriterPipeline': 1}, # Used for pipeline 1
        'FEED_FORMAT':'json',                                 # Used for pipeline 2
        'FEED_URI': 'cplresult.json'                        # Used for pipeline 2
    }
    
    def _parse_classification(self, title):
        if "committee" in title.lower():
            return "COMMITTEE"
        if "commission" in title.lower():
            return "COMMISSION"
        return "BOARD"
    
    def _parse_location(self, response):
        elems = response.css('.has-text-align-center::text').extract()
        if "abundance" in elems[0].lower() and "zoom" not in elems[0].lower():
            meeting_name = response.css('.has-text-align-center::text').extract()[0]+"Zoom"
        else:
            meeting_name = response.css('.has-text-align-center::text').extract()[0]
        if "zoom" not in meeting_name.lower():
            address = "17109 Lake Shore Blvd Cleveland, OH 44110"
        else:
            address = response.css('.has-text-align-center').css('a::attr(href)').extract()
            if len(address)<2:
                add = [x for x in response.css('.has-text-align-center::text').extract() if "meeting id" in x.lower()][0]
                _phone = add.split("(")[0]
                _meeting_id = add.split("(")[1]
                
                meeting_id = [x for x in _meeting_id if x.isnumeric()]
                zoom_link = "https://cpl.zoom.us/j/" + "".join(meeting_id)
                phone = f"tel:{''.join([x for x in _phone if x.isnumeric()])}"
                if phone not in address and len(phone)>len("tel:"):
                    address.append(phone) 
                if zoom_link not in address and len(zoom_link)>len("https://cpl.zoom.us/j/"):
                    address.append(zoom_link) 
        return {"name": name, "address":...