Head
2026-06-16 13:01:13 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-06-16 13:01:13 [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 13:01:13 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-06-16 13:01:13 [asyncio] DEBUG: Using selector: EpollSelector
2026-06-16 13:01:13 [scrapy.addons] INFO: Enabled addons:
[]
2026-06-16 13:01:14 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-06-16 13:01:14 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-06-16 13:01:14 [scrapy.extensions.telnet] INFO: Telnet Password: c1f49e1c4889e249
2026-06-16 13:01:14 [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 13:01:14 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x77b051728540>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/norwalk_symphony/ae028570697211f1bb2a0050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-06-16 13:01:14 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 13:01:14 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 13:01:14 [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 13:01:14 [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 13:01:14 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-06-16 13:01:14 [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 13:01:14 [scrapy.core.engine] INFO: Spider opened
2026-06-16 13:01:14 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.norwalk_symphony.NorwalkSymphonySpider 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 13:01:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-06-16 13:01:14 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-06-16 13:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalksymphony.org/> (referer: None)
2026-06-16 13:01:14 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://www.norwalksymphony.org/20262027>, 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 13:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalksymphony.org/20262027> (referer: https://www.norwalksymphony.org/)
2026-06-16 13:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalksymphony.org/20262027/2026/3/30/holiday-pops> (referer: https://www.norwalksymphony.org/20262027)
2026-06-16 13:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalksymphony.org/20262027/2026/3/30/tchaikovsky-festival> (referer: https://www.norwalksymphony.org/20262027)
2026-06-16 13:01:14 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 13:01:15 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 9843
2026-06-16 13:01:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.norwalksymphony.org/20262027/2026/3/30/holiday-pops>
{'event_url': 'https://www.norwalksymphony.org/20262027/2026/3/30/holiday-pops',
'platform': 'Norwalk Symphony',
'platform_hash': 'd45358e61d55c4b6af90b2923136dd8e',
'raw_body': '<div class="main-content" data-content-field="main-content" '
'data-collection-id="69cb393ae7dcf81d5fc207dc" '
'data-edit-main-image="Page Banner">\n'
'\t\t\t\t\t\t\t\t\t<div class="sqs-events-collection-item">\n'
'\n'
' <a href="/20262027" class="eventitem-backlink">Back to All '
'Events</a>\n'
'\n'
' \n'
' <article class="eventitem " '
'id="article-69cb3b15e25d2678de95936a" '
'data-item-id="69cb3b15e25d2678de95936a">\n'
'\n'
' <div class="eventitem-column-meta">\n'
'\n'
' <h1 class="eventitem-title">Holiday Pops</h1>\n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-date-time-container">\n'
'\n'
Tail
' \n'
' overflow: hidden;-webkit-mask-image: '
'-webkit-radial-gradient(white, black);\n'
' ">\n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
' <img data-stretch="false" '
'data-src="https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png" '
'data-image="https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png" '
'data-image-dimensions="2659x984" '
'data-image-focal-point="0.5,0.5" alt="" data-load="false" '
'elementtiming="system-image-block" '
'data-sqsp-image-classic-block-image '
'src="https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png" '
'width="2659" height="984" sizes="(max-width: 640px) 100vw, '
'(max-width: 767px) 100vw, 100vw" '
'style="display:block;object-fit: cover; width: 100%; height: '
'100%; object-position: 50% 50%" '
'onload=\'this.classList.add("loaded")\' '
'srcset="https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=100w '
'100w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=300w '
'300w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=500w '
'500w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=750w '
'750w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=1000w '
'1000w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=1500w '
'1500w, '
'https://images.squarespace-cdn.com/content/v1/53ef8553e4b0cc6081ed6a79/1774925720813-TIVN3KA5YW4KWDO79J5J/3c-WSS.png?format=2500w '
'2500w" loading="lazy" decoding="async" data-loader="sqs">\n'
'\n'
' </div>\n'
' </div>\n'
' \n'
' \n'
' \n'
'\n'
' \n'
' \n'
' </figure>\n'
' \n'
'\n'
' </div>\n'
' \n'
'\n'
'\n'
' \n'
'\n'
'\n'
'</div></div><div class="sqs-block html-block sqs-block-html" '
'data-block-type="2" data-sqsp-block="text" '
'id="block-c77831ba109cb5fac8fd"><div class="sqs-block-content">\n'
'\n'
'<div class="sqs-html-content" data-sqsp-text-block-content>\n'
' <p class="" style="white-space:pre-wrap;">Feel the electricity '
'of the streets come alive in a thrilling concert staging of\xa0'
'<em>West Side Story</em>, where\xa0Leonard Bernstein’s '
'unforgettable score and\xa0Stephen Sondheim’s razor-sharp lyrics '
'ignite a timeless tale of love, rivalry, and hope. From the '
'explosive energy of “Tonight” to the aching beauty of '
'“Somewhere,” this dynamic performance brings the iconic music '
'front and center, with a full orchestra on stage so you can hear '
'the music the way it’s meant to be heard! Our yearly Broadway '
'shows, in collaboration with New Paradigm Theatre, bring '
'Broadway stars right to Norwalk. Passionate, poignant, and '
'pulse-pounding, this is\xa0<em>West Side Story</em>\xa0as you’ve '
'never felt it before.</p>\n'
'</div>\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
'\n'
' \n'
' \n'
'\n'
'\n'
'\n'
'</div></div></div></div></div>\n'
'\n'
' \n'
' <div class="eventitem-content-footer">\n'
'\n'
' \n'
'\n'
' \n'
'\n'
' <div class="eventitem-meta event-meta '
'event-meta-socialicon-container">\n'
' <span class="sqs-simple-like" '
'data-item-id="69cb5153c73c9965ce3d26de" data-like-count="0">\n'
' <span class="like-icon"></span>\n'
' <span class="like-count"></span>\n'
' </span>\n'
'<span class="squarespace-social-buttons inline-style" '
'data-system-data-id="" '
'data-asset-url="https://static1.squarespace.com/static/53ef8553e4b0cc6081ed6a79/69cb393ae7dcf81d5fc207dc/69cb5153c73c9965ce3d26de/1779848640008/" '
'data-record-type="12" '
'data-full-url="/20262027/2026/3/31/west-side-story" '
'data-title="West Side Story"></span></div>\n'
' </div>\n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="clear"></div>\n'
'\n'
' </article>\n'
'\n'
' \n'
'\n'
' <div class="clear"></div>\n'
'\n'
'\n'
' \n'
' \n'
' <div class="eventitem-pager">\n'
'\n'
' \n'
' <div class="eventitem-pager-older">\n'
' <div class="eventitem-pager-date">Earlier Event: '
'December 6</div>\n'
' <a class="eventitem-pager-link" '
'href="/20262027/2026/3/30/holiday-pops"><span '
'class="eventitem-pager-title">Holiday Pops</span></a>\n'
' </div>\n'
' \n'
'\n'
' \n'
' <div class="eventitem-pager-newer">\n'
' <div class="eventitem-pager-date">Later Event: March '
'20</div>\n'
' <a class="eventitem-pager-link" '
'href="/20262027/2026/3/31/verdi-requiem-with-fairfield-county-chorale"><span '
'class="eventitem-pager-title">Verdi Requiem with Fairfield '
'County Chorale*</span></a>\n'
' </div>\n'
' \n'
'\n'
' <div class="clear"></div>\n'
' </div>\n'
' \n'
' \n'
'\n'
'</div>\n'
'\t\t\t\t\t\t\t\t</div>'}
2026-06-16 13:01:15 [scrapy.core.engine] INFO: Closing spider (finished)
2026-06-16 13:01:15 [scrapy.extensions.feedexport] INFO: Stored csv feed (6 items) in: output/2026/06/16/norwalk_symphony.csv
2026-06-16 13:01:15 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 2899,
'downloader/request_count': 8,
'downloader/request_method_count/GET': 8,
'downloader/response_bytes': 218304,
'downloader/response_count': 8,
'downloader/response_status_count/200': 8,
'elapsed_time_seconds': 1.412568,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 6, 16, 11, 1, 15, 655919, tzinfo=datetime.timezone.utc),
'httpcompression/response_bytes': 925944,
'httpcompression/response_count': 8,
'item_scraped_count': 6,
'items_per_minute': 360.0,
'log_count/DEBUG': 26,
'log_count/INFO': 3,
'log_count/WARNING': 1,
'memusage/max': 93159424,
'memusage/startup': 93159424,
'request_depth_max': 2,
'response_received_count': 8,
'responses_per_minute': 480.0,
'scheduler/dequeued': 8,
'scheduler/dequeued/memory': 8,
'scheduler/enqueued': 8,
'scheduler/enqueued/memory': 8,
'start_time': datetime.datetime(2026, 6, 16, 11, 1, 14, 243351, tzinfo=datetime.timezone.utc)}
2026-06-16 13:01:15 [scrapy.core.engine] INFO: Spider closed (finished)