Head
2026-06-16 18:21:33 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-06-16 18:21:33 [scrapy.utils.log] INFO: Versions:
{'lxml': '6.0.2',
'libxml2': '2.14.6',
'cssselect': '1.3.0',
'parsel': '1.10.0',
'w3lib': '2.0.0',
'Twisted': '25.5.0',
'Python': '3.12.3 (main, Mar 23 2026, 19:04:32) [GCC 13.3.0]',
'pyOpenSSL': '25.3.0 (OpenSSL 3.5.4 30 Sep 2025)',
'cryptography': '46.0.3',
'Platform': 'Linux-6.8.0-90-generic-x86_64-with-glibc2.39'}
2026-06-16 18:21:33 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-06-16 18:21:33 [asyncio] DEBUG: Using selector: EpollSelector
2026-06-16 18:21:33 [scrapy.addons] INFO: Enabled addons:
[]
2026-06-16 18:21:34 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-06-16 18:21:34 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-06-16 18:21:34 [scrapy.extensions.telnet] INFO: Telnet Password: d58ac1cebdec7445
2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.logcount.LogCount',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.feedexport.FeedExporter',
'scrapy.extensions.logstats.LogStats']
2026-06-16 18:21:34 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x7c7eb9b34540>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/west_port_library/6f911e87699f11f18b560050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-06-16 18:21:34 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 18:21:34 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware',
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.start.StartSpiderMiddleware',
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware',
'scrapy_zyte_api.ScrapyZyteAPIRefererSpiderMiddleware']
2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
self._check_mw_method_spider_arg(pipe.process_item)
2026-06-16 18:21:34 [scrapy.core.engine] INFO: Spider opened
2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.west_port_library.ListingSpider defines the deprecated start_requests() method. start_requests() has been deprecated in favor of a new method, start(), to support asynchronous code execution. start_requests() will stop being called in a future version of Scrapy. If you use Scrapy 2.13 or higher only, replace start_requests() with start(); note that start() is a coroutine (async def). If you need to maintain compatibility with lower Scrapy versions, when overriding start_requests() in a spider class, override start() as well; you can use super() to reuse the inherited start() implementation without copy-pasting. See the release notes of Scrapy 2.13 for details: https://docs.scrapy.org/en/2.13/news.html
warn(
2026-06-16 18:21:34 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-06-16 18:21:34 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-06-16 18:21:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:22:34 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-06-16 18:23:08 [zyte_api._retry] DEBUG: Finished call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request' after 93.6(s), this was the 1st time calling it.
2026-06-16 18:23:08 [zyte_api._retry] DEBUG: Retrying zyte_api._async.AsyncZyteAPI.get.<locals>.request in 4.5 seconds as it raised RequestError: RequestError: 520, message=, headers=<CIMultiDictProxy('Date': 'Tue, 16 Jun 2026 16:23:08 GMT', 'Content-Type': 'application/problem+json', 'Content-Length': '214', 'Connection': 'close', 'Retry-After': '60', 'Request-Id': 'b481bce4615b24227c67f964d8847775', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'Access-Control-Allow-Credentials': 'true', 'Access-Control-Expose-Headers': '*, X-Project-Key', 'Access-Control-Allow-Methods': 'GET, PUT, POST, DELETE, PATCH, OPTIONS', 'Access-Control-Allow-Headers': 'DNT, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Range, Authorization, X-Project-Key', 'Access-Control-Max-Age': '1728000')>, body=b'{"type":"/download/temporary-error","title":"Website Ban","status":520,"detail":"Zyte API could not get a ban-free response in a reasonable time. See https://docs.zyte.com/zyte-api/usage/errors.html#ban-responses"}', request_id=b481bce4615b24227c67f964d8847775.
2026-06-16 18:23:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 2nd time calling it.
2026-06-16 18:23:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:23:33 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://westportlibrary.org/calendar/list/page/2/>, and there are cookies in the cookiejar, but ZYTE_API_EXPERIMENTAL_COOKIES_ENABLED is False, so automatic mapping will not map cookies for this or any other request. To silence this warning, disable cookies for all requests that use automatic mapping, either with the COOKIES_ENABLED setting or with the dont_merge_cookies request metadata key.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:23:34 [scrapy.extensions.logstats] INFO: Crawled 1 pages (at 1 pages/min), scraped 0 items (at 0 items/min)
2026-06-16 18:23:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:23:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern/2026-06-16/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:23:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 18:23:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10171
2026-06-16 18:23:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/>
{'event_url': 'https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/',
'platform': 'West Port Library',
Tail
2026-06-16 18:34:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/78/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:30 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:34 [scrapy.extensions.logstats] INFO: Crawled 333 pages (at 13 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:34:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/79/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/80/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/81/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:42 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:46 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/82/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:46 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/83/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:51 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:34:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/84/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:34:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/85/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/86/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/87/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:34 [scrapy.extensions.logstats] INFO: Crawled 342 pages (at 9 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:35:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/88/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:37 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/89/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/90/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:48 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/91/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:53 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:35:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/92/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:35:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/93/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:01 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/94/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:05 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/95/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:09 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/96/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:18 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/97/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:18 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/98/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:22 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:27 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/99/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:27 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/100/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:31 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:34 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/101/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:34 [scrapy.extensions.logstats] INFO: Crawled 356 pages (at 14 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:36:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:36:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/102/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:36:38 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:20 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/103/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:20 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/104/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:30 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/105/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:34 [scrapy.extensions.logstats] INFO: Crawled 360 pages (at 4 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:37:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/106/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/107/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:42 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:46 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/108/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:47 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:37:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/109/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:37:50 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/110/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:14 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:23 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/111/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:23 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/112/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:28 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/113/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:34 [scrapy.extensions.logstats] INFO: Crawled 368 pages (at 8 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:38:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/114/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:37 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:40 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/115/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/116/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:45 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:38:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/117/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:38:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/118/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:09 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/119/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:14 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/120/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/121/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:34 [scrapy.extensions.logstats] INFO: Crawled 376 pages (at 8 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:39:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/122/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:36 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/123/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:39:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/124/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:39:52 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/125/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:15 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/126/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/127/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:34 [scrapy.extensions.logstats] INFO: Crawled 382 pages (at 6 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:40:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/128/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:38 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/129/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/130/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:45 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/131/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:49 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/132/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:52 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:40:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/133/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:40:56 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/134/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:13 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:16 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/135/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:16 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:20 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/136/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:20 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:24 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/137/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:24 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:27 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/138/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:28 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:31 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/139/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:34 [scrapy.extensions.logstats] INFO: Crawled 394 pages (at 12 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:41:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/140/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:41:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/141/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:41:58 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:02 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/142/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:42:02 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:15 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/143/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:42:15 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:19 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/144/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:42:19 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/145/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:42:22 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:34 [scrapy.extensions.logstats] INFO: Crawled 400 pages (at 6 pages/min), scraped 255 items (at 0 items/min)
2026-06-16 18:42:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/146/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:42:49 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:42:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/147/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:43:00 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:43:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/148/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:43:08 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-06-16 18:43:11 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/149/> (referer: https://westportlibrary.org/) ['zyte-api']
2026-06-16 18:43:11 [scrapy.core.engine] INFO: Closing spider (finished)
2026-06-16 18:43:11 [scrapy.extensions.feedexport] INFO: Stored csv feed (255 items) in: output/2026/06/16/west_port_library.csv
2026-06-16 18:43:11 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 449731,
'downloader/request_count': 404,
'downloader/request_method_count/GET': 404,
'downloader/response_bytes': 97321478,
'downloader/response_count': 404,
'downloader/response_status_count/200': 404,
'elapsed_time_seconds': 1297.224074,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 6, 16, 16, 43, 11, 812352, tzinfo=datetime.timezone.utc),
'item_scraped_count': 255,
'items_per_minute': 11.7964533538936,
'log_count/DEBUG': 1588,
'log_count/ERROR': 18,
'log_count/INFO': 24,
'log_count/WARNING': 1,
'memusage/max': 190443520,
'memusage/startup': 93032448,
'request_depth_max': 148,
'response_received_count': 404,
'responses_per_minute': 18.68928296067849,
'scheduler/dequeued': 404,
'scheduler/dequeued/memory': 404,
'scheduler/enqueued': 404,
'scheduler/enqueued/memory': 404,
'scrapy-zyte-api/429': 0,
'scrapy-zyte-api/attempts': 409,
'scrapy-zyte-api/error_ratio': 0.012224938875305624,
'scrapy-zyte-api/error_types/download/temporary-error': 5,
'scrapy-zyte-api/errors': 5,
'scrapy-zyte-api/fatal_errors': 0,
'scrapy-zyte-api/mean_connection_seconds': 10.579621714824475,
'scrapy-zyte-api/mean_response_seconds': 9.982989003803425,
'scrapy-zyte-api/processed': 404,
'scrapy-zyte-api/request_args/customHttpRequestHeaders': 404,
'scrapy-zyte-api/request_args/httpResponseBody': 404,
'scrapy-zyte-api/request_args/httpResponseHeaders': 404,
'scrapy-zyte-api/request_args/url': 404,
'scrapy-zyte-api/status_codes/200': 404,
'scrapy-zyte-api/status_codes/520': 5,
'scrapy-zyte-api/success': 404,
'scrapy-zyte-api/success_ratio': 1.0,
'scrapy-zyte-api/throttle_ratio': 0.0,
'start_time': datetime.datetime(2026, 6, 16, 16, 21, 34, 588278, tzinfo=datetime.timezone.utc)}
2026-06-16 18:43:11 [scrapy.core.engine] INFO: Spider closed (finished)