Head
2026-08-04 15:20:44 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-08-04 15:20:44 [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, Jun 19 2026, 12:46:00) [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-08-04 15:20:44 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-08-04 15:20:44 [asyncio] DEBUG: Using selector: EpollSelector
2026-08-04 15:20:44 [scrapy.addons] INFO: Enabled addons:
[]
2026-08-04 15:20:45 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-08-04 15:20:45 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-08-04 15:20:45 [scrapy.extensions.telnet] INFO: Telnet Password: 8dfd6a0606736e55
2026-08-04 15:20:45 [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-08-04 15:20:45 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x7acc7462b4c0>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/contem_prints/484acf1a900711f195a20050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-08-04 15:20:45 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 15:20:45 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 15:20:45 [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-08-04 15:20:45 [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-08-04 15:20:45 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-08-04 15:20:45 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:41: ScrapyDeprecationWarning: EventScrapersPipeline.open_spider() 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.open_spider)
2026-08-04 15:20:45 [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-08-04 15:20:45 [scrapy.core.engine] INFO: Spider opened
2026-08-04 15:20:45 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.contem_prints.ContemPrintsSpider 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-08-04 15:20:45 [contem_prints] INFO: Sending scraped events to prod API
2026-08-04 15:20:45 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-08-04 15:20:45 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-08-04 15:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/education/workshops/> (referer: None)
2026-08-04 15:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/events/> (referer: None)
2026-08-04 15:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/exhibitions> (referer: None)
2026-08-04 15:20:47 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://contemprints.org/event/?id=100815>, 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-08-04 15:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/event/?id=100815> (referer: https://contemprints.org/events/)
2026-08-04 15:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-04 15:20:50 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-08-04 15:20:50 [contem_prints] ERROR: API error 500:
<!doctype html>
<html lang="en">
<head>
<title>Server Error (500)</title>
</head>
<body>
<h1>Server Error (500)</h1><p></p>
</body>
</html>
2026-08-04 15:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://contemprints.org/event/?id=100815>
{'event_url': 'https://contemprints.org/event/?id=100815',
'platform_hash': '3da78e63c07fe8896cb13a6fbc93cfab',
'raw_body': '<h1> 2026 MONOTHON Auction & Party </h1><div '
'class="uk-panel uk-position-z-index" uk-sticky="end: '
'!.js-sticky; media: @m;">\n'
'<div class="uk-panel uk-margin"><h2>Join us for our annual '
'MONOTHON Auction & Party!</h2>\n'
'<p>Come see all the incredible Monotypes created during Monothon '
Tail
'<p>Cynthia DiGiacomo</p>\n'
'<p>James Dormer</p>\n'
'<p>William Evertson</p>\n'
'<p>Sheila Fane</p>\n'
'<p>Ana Fernandez</p>\n'
'<p>Lisa Flynn</p>\n'
'<p>Harrison Gill</p>\n'
'<p>Patricia L Giraud</p>\n'
'<p>Hanneke Goedkoop**</p>\n'
'<p>Barry Goldstein</p>\n'
'<p>Georgina Grenier</p>\n'
'<p>Mark Grindell</p>\n'
'<p>Alice Hayes</p>\n'
'<p>Mary-Helen Horne</p>\n'
'<p>Beth Howe</p>\n'
'<p>Yukio Ito</p>\n'
'<p>Martha Ives*</p>\n'
'<p>Jayne Reid Jackson</p>\n'
'<p>Oscar Jarsky</p>\n'
'<p>Rachel Kangas</p>\n'
'<p>Gali Katz**</p>\n'
'<p>Brian Knoerzer</p>\n'
'<p>Taichi Kodama</p>\n'
'<p>Andrea Kornbluth</p>\n'
'<p>Michael Krawiec</p>\n'
'<p>Danguole Kuolas</p>\n'
'<p>Ellen Lazarus</p>\n'
'<p>Patricia Shaw Lima</p>\n'
'<p>Arch MacInnes*</p>\n'
'<p>Kate McGloughlin</p>\n'
'<p>Larinda Meade</p>\n'
'<p>Joseph Moore</p>\n'
'<p>Yoshiaki Murakami*</p>\n'
'<p>Danuta Muszynska</p>\n'
'<p>Gina Palmer</p>\n'
'<p>Lucie Palombi</p>\n'
'<p>Sachin Pannuri</p>\n'
'<p>Albert Pema</p>\n'
'<p>Polly Perkins**</p>\n'
'<p>Michael Piotrowski</p>\n'
'<p>Meira Pomerantz</p>\n'
'<p>Walter Procska**</p>\n'
'<p>DeAnn Prosia</p>\n'
'<p>Bryan Raymundo</p>\n'
'<p>Kate Ricketson</p>\n'
'<p>Lilia Robinowitz</p>\n'
'<p>Sigita Rucinskaite Praneviciene</p>\n'
'<p>Janet Sang</p>\n'
'<p>Terry Schupbach-Gordon</p>\n'
'<p>Esther Schwalb</p>\n'
'<p>Lynita Shimizu</p>\n'
'<p>Mike Sonnichsen</p>\n'
'<p>Sawyer Strouth</p>\n'
'<p>Mary Teichman</p>\n'
'<p>Ann Tetelman</p>\n'
'<p>Anna Trojanowska</p>\n'
'<p>Karen Vogel</p>\n'
'<p>April Vollmer</p>\n'
'<p>Karen Waggoner</p>\n'
'<p>Candacee White</p>\n'
'<p>Cleo Wilkinson</p>\n'
'<p>Cynthia Woolever Molinari</p>\n'
'<p>Valerie Zeman</p>\n'
'<p>\xa0</p>\n'
'<p>*Prize Winner</p>\n'
'<p>**Honorable Mention</p></div>\n'
'</div></div><div class="uk-grid tm-grid-expand '
'uk-child-width-1-1 uk-grid-margin">\n'
'<div class="uk-width-1-1">\n'
'<h1 uk-scrollspy-class=""> Image Gallery </h1>\n'
'<div class="uk-margin">\n'
'<div class="uk-grid uk-child-width-1-1 uk-child-width-1-3@m '
'uk-grid-match" uk-grid="" uk-lightbox="toggle: a[data-type];"> '
'<div>\n'
'</div>\n'
'<div>\n'
'</div>\n'
'<div>\n'
'</div>\n'
'<div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div></div>\n'
'</div><div class="uk-width-1-2@m">\n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
' <div class="uk-panel uk-margin" '
'uk-scrollspy-class><h3>Gallery and Studio '
'Hours</h3>\n'
'<p><strong>Tuesday–Saturday</strong> 9am–5pm '
'<br><strong>Sunday</strong> 12pm–5pm '
'<br><strong>Closed '
'Mondays</strong></p></div><div '
'class="uk-panel uk-margin" uk-scrollspy-class><div '
'class="uk-grid tm-grid-expand uk-grid-margin" uk-grid>\n'
'<div class="uk-width-1-2@m">\n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
'<div class="uk-margin" uk-scrollspy-class> <ul '
'class="uk-child-width-auto uk-grid-small uk-flex-inline '
'uk-flex-middle" uk-grid>\n'
' <li class="el-item">\n'
'<a class="el-link uk-icon-button" '
'href="https://www.facebook.com/pages/Norwalk-CT/Center-for-Contemporary-Printmaking/888" '
'rel="noreferrer"><span uk-icon="icon: '
'facebook;"></span></a></li>\n'
' <li class="el-item">\n'
'<a class="el-link uk-icon-button" '
'href="https://www.instagram.com/contemprints/" '
'rel="noreferrer"><span uk-icon="icon: '
'instagram;"></span></a></li>\n'
' <li class="el-item">\n'
'<a class="el-link uk-icon-button" '
'href="https://visitor.r20.constantcontact.com/manage/optin?v=001DFTCDgfTjaimkdD9RixGh1V4JStiucuo" '
'rel="noreferrer"><span uk-icon="icon: '
'mail;"></span></a></li>\n'
' \n'
' </ul></div>\n'
' \n'
' \n'
' \n'
' \n'
'</div>\n'
'<div class="uk-width-1-2@m">\n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
' \n'
'<div class="uk-margin" uk-scrollspy-class>\n'
' \n'
' \n'
' \n'
' \n'
'<a class="el-content uk-button uk-button-primary '
'uk-button-small" '
'href="https://visitor.r20.constantcontact.com/manage/optin?v=001DFTCDgfTjaimkdD9RixGh1V4JStiucuo">\n'
' \n'
' JOIN OUR NEWSLETTER \n'
' \n'
'</a>\n'
'\n'
'\n'
' \n'
' \n'
' \n'
'</div>\n'
'\n'
' \n'
' \n'
' \n'
' \n'
'</div></div></div>\n'
' \n'
' \n'
' \n'
' \n'
'</div>'}
2026-08-04 15:21:06 [scrapy.core.engine] INFO: Closing spider (finished)
2026-08-04 15:21:06 [scrapy.extensions.feedexport] INFO: Stored csv feed (13 items) in: output/2026/08/04/contem_prints.csv
2026-08-04 15:21:06 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 5143,
'downloader/request_count': 16,
'downloader/request_method_count/GET': 16,
'downloader/response_bytes': 1298647,
'downloader/response_count': 16,
'downloader/response_status_count/200': 16,
'elapsed_time_seconds': 20.987114,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 8, 4, 13, 21, 6, 592573, tzinfo=datetime.timezone.utc),
'item_scraped_count': 13,
'items_per_minute': 39.0,
'log_count/DEBUG': 55,
'log_count/ERROR': 13,
'log_count/INFO': 3,
'log_count/WARNING': 1,
'memusage/max': 99631104,
'memusage/startup': 99631104,
'request_depth_max': 1,
'response_received_count': 16,
'responses_per_minute': 48.0,
'scheduler/dequeued': 16,
'scheduler/dequeued/memory': 16,
'scheduler/enqueued': 16,
'scheduler/enqueued/memory': 16,
'start_time': datetime.datetime(2026, 8, 4, 13, 20, 45, 605459, tzinfo=datetime.timezone.utc)}
2026-08-04 15:21:06 [scrapy.core.engine] INFO: Spider closed (finished)