Head
2026-08-11 15:20:23 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-08-11 15:20:23 [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-11 15:20:23 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-08-11 15:20:23 [asyncio] DEBUG: Using selector: EpollSelector
2026-08-11 15:20:23 [scrapy.addons] INFO: Enabled addons:
[]
2026-08-11 15:20:23 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-08-11 15:20:23 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-08-11 15:20:23 [scrapy.extensions.telnet] INFO: Telnet Password: 1dc4aed2e3a805c3
2026-08-11 15:20:23 [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-11 15:20:23 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x78eed344f4c0>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/contem_prints/65c8f066958711f1ac000050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-08-11 15:20:23 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-11 15:20:23 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-11 15:20:23 [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-11 15:20:23 [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-11 15:20:23 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-08-11 15:20:23 [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-11 15:20:23 [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-11 15:20:23 [scrapy.core.engine] INFO: Spider opened
2026-08-11 15:20:23 [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-11 15:20:23 [contem_prints] INFO: Sending scraped events to prod API
2026-08-11 15:20:23 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-08-11 15:20:23 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-08-11 15:20:25 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/events/> (referer: None)
2026-08-11 15:20:25 [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-11 15:20:25 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/exhibitions> (referer: None)
2026-08-11 15:20:25 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/education/workshops/> (referer: None)
2026-08-11 15:20:26 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/exhibition/10th-biennial-footprint-international-exhibition/> (referer: https://contemprints.org/exhibitions)
2026-08-11 15:20:26 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-11 15:20:26 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 8428
2026-08-11 15:20:26 [scrapy.core.scraper] DEBUG: Scraped from <200 https://contemprints.org/exhibition/10th-biennial-footprint-international-exhibition/>
{'event_url': 'https://contemprints.org/exhibition/10th-biennial-footprint-international-exhibition/',
'platform_hash': '3da78e63c07fe8896cb13a6fbc93cfab',
'raw_body': '<div id="exhibitions"><h1>This is a content of '
'exhibition</h1></div><h1 uk-scrollspy-class=""> 10th '
'Biennial FOOTPRINT International Exhibition </h1><div '
'class="uk-container fs-section-content">\n'
'<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=""> 10th Biennial FOOTPRINT '
'International Exhibition </h1><hr class="uk-divider-small" '
'uk-scrollspy-class=""/>\n'
'</div></div><div class="uk-grid tm-grid-expand uk-grid-margin" '
'uk-grid="">\n'
'<div class="uk-width-1-2@m">\n'
'<div class="uk-panel uk-text-lead uk-text-danger uk-margin" '
'uk-scrollspy-class="">June 7, 2026 – August 30, 2026</div><div '
'uk-scrollspy-class=""><p><strong>JUROR: </strong>Dr. Amé '
'Bell,<em> Gallery Director at David Krut Projects in '
Tail
' \n'
'</a>\n'
'</div>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'ionicons-outline--calendar-clear-outline;"></span></div> <div>\n'
'<div class="el-content uk-panel">Sat October 17, 2026</div> '
'</div>\n'
'</div>\n'
'</li> <li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'fontawesome-regular--play-circle;"></span></div> <div>\n'
'<div class="el-content uk-panel">Start: 10:00 am</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-primary" uk-icon="icon: '
'world;"></span></div> <div>\n'
'<div class="el-content uk-panel">Upstairs Studio – Not ADA '
'accessible<br/>\n'
'Center for Contemporary Printmaking<br/>\n'
'Norwalk, CT 06850</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'</div>'}
2026-08-11 15:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/event/?id=100816> (referer: https://contemprints.org/events/)
2026-08-11 15:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-11 15:20:32 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 2399
2026-08-11 15:20:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://contemprints.org/event/?id=100816>
{'event_url': 'https://contemprints.org/event/?id=100816',
'platform_hash': '3da78e63c07fe8896cb13a6fbc93cfab',
'raw_body': '<h1> YOUTH MONOTHON 2026 SESSION </h1><div '
'class="uk-panel uk-position-z-index" uk-sticky="end: '
'!.js-sticky; media: @m;">\n'
'<div class="uk-panel uk-margin"><p>Ages 11-18, all skill '
'levels</p>\n'
'<p>Sunday, October 5, 2025, from 10 AM – 3 PM<br/>\n'
'Materials & Lunch Provided</p>\n'
'<p>Young artists are invited to take part in their own '
'MONOTHON\xa0session hosted by CCP’s staff printers. All skill '
'levels welcome.\xa0Materials and lunch will be provided. '
'Participants will have one print\xa0selected for inclusion in '
'the MONOTHON 2026 Silent Auction.</p></div>\n'
'<div class="uk-margin">\n'
'<a class="el-content uk-width-1-1 uk-button uk-button-primary '
'uk-flex-inline uk-flex-center uk-flex-middle" '
'href="/civicrm/event/register/?reset=1&id=100816">\n'
'<span class="uk-margin-small-right" '
'uk-icon="ionicons-outline--ticket-outline"></span> \n'
' Register Today! \n'
' \n'
'</a>\n'
'</div>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'ionicons-outline--calendar-clear-outline;"></span></div> <div>\n'
'<div class="el-content uk-panel">Sun October 4, 2026</div> '
'</div>\n'
'</div>\n'
'</li> <li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'fontawesome-regular--play-circle;"></span></div> <div>\n'
'<div class="el-content uk-panel">Start: 10:00 am</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-primary" uk-icon="icon: '
'world;"></span></div> <div>\n'
'<div class="el-content uk-panel">Upstairs Studio – Not ADA '
'accessible<br/>\n'
'Center for Contemporary Printmaking<br/>\n'
'Norwalk, CT 06850</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'</div>'}
2026-08-11 15:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://contemprints.org/event/?id=100832> (referer: https://contemprints.org/education/workshops/)
2026-08-11 15:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-11 15:20:33 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 3422
2026-08-11 15:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://contemprints.org/event/?id=100832>
{'event_url': 'https://contemprints.org/event/?id=100832',
'platform_hash': '3da78e63c07fe8896cb13a6fbc93cfab',
'raw_body': '<h1> Monotype Basics (SECOND DATE ADDED!) </h1><div '
'class="uk-panel uk-position-z-index" uk-sticky="end: '
'!.js-sticky; media: @m;">\n'
'<div class="uk-panel uk-text-lead uk-text-danger uk-margin">This '
'event is currently full, please email our Education Manager at '
'etella@contemprints.org to be added to the waitlist.</div><div '
'class="uk-panel uk-margin"><p dir="ltr"><b>Instructor: '
'</b><b>Chris Shore</b></p>\n'
'<p dir="ltr"><b>Date: Friday, August 21, 2026</b></p>\n'
'<p dir="ltr"><b>Time: 10am – 4pm</b></p>\n'
'<p dir="ltr"><b>Class size: 6-8, All Levels</b></p>\n'
'<p dir="ltr"><b>Cost*: $165 members, $215 non-members</b></p>\n'
'<p dir="ltr"><em>*includes all essential materials</em></p>\n'
'<p dir="ltr"><strong>Workshop Description:</strong> Come explore '
'the directness of monotype printmaking in this short '
'introductory workshop.\xa0 Using non-toxic inks, participants '
'will learn about the tools and techniques of monotype by '
'exploring both additive and reductive mark making. Starting with '
'a brief introduction to the history of monotypes, artists will '
'get to create a suite of prints by exploring color, texture, '
'multiple layers as well as “ghost prints.” Each participant will '
'get some individual attention to discuss methods for translating '
'their ideas into monotypes.</p>\n'
'<p dir="ltr">\xa0</p>\n'
'<p dir="ltr"><em><b>*All workshop registrations should provide '
'an email confirmation after they are submitted. If you did not '
'receive an email confirming your class registration, please give '
'us a call at 203-899-7999</b></em></p></div>\n'
'<div class="uk-margin">\n'
'<a class="el-content uk-width-1-1 uk-button uk-button-secondary '
'uk-flex-inline uk-flex-center uk-flex-middle" '
'href="/civicrm/event/register/?reset=1&id=100832">\n'
'<span class="uk-margin-small-right" '
'uk-icon="ionicons-outline--ticket-outline"></span> \n'
' Sorry, registration is closed for this event \n'
' \n'
'</a>\n'
'</div>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'ionicons-outline--calendar-clear-outline;"></span></div> <div>\n'
'<div class="el-content uk-panel">Fri August 21, 2026</div> '
'</div>\n'
'</div>\n'
'</li> <li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-secondary" uk-icon="icon: '
'fontawesome-regular--play-circle;"></span></div> <div>\n'
'<div class="el-content uk-panel">Start: 10:00 am</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'<ul class="uk-list">\n'
'<li class="el-item">\n'
'<div class="uk-grid uk-grid-small uk-child-width-expand '
'uk-flex-nowrap uk-flex-middle"> <div class="uk-width-auto"><span '
'class="el-image uk-text-primary" uk-icon="icon: '
'world;"></span></div> <div>\n'
'<div class="el-content uk-panel">Upstairs Studio – Not ADA '
'accessible<br/>\n'
'Center for Contemporary Printmaking<br/>\n'
'Norwalk, CT 06850</div> </div>\n'
'</div>\n'
'</li>\n'
'</ul>\n'
'</div>'}
2026-08-11 15:20:33 [scrapy.core.engine] INFO: Closing spider (finished)
2026-08-11 15:20:33 [scrapy.extensions.feedexport] INFO: Stored csv feed (13 items) in: output/2026/08/11/contem_prints.csv
2026-08-11 15:20:33 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 5143,
'downloader/request_count': 16,
'downloader/request_method_count/GET': 16,
'downloader/response_bytes': 1299003,
'downloader/response_count': 16,
'downloader/response_status_count/200': 16,
'elapsed_time_seconds': 9.587949,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 8, 11, 13, 20, 33, 160528, tzinfo=datetime.timezone.utc),
'item_scraped_count': 13,
'items_per_minute': 86.66666666666667,
'log_count/DEBUG': 55,
'log_count/INFO': 3,
'log_count/WARNING': 1,
'memusage/max': 99532800,
'memusage/startup': 99532800,
'request_depth_max': 1,
'response_received_count': 16,
'responses_per_minute': 106.66666666666667,
'scheduler/dequeued': 16,
'scheduler/dequeued/memory': 16,
'scheduler/enqueued': 16,
'scheduler/enqueued/memory': 16,
'start_time': datetime.datetime(2026, 8, 11, 13, 20, 23, 572579, tzinfo=datetime.timezone.utc)}
2026-08-11 15:20:33 [scrapy.core.engine] INFO: Spider closed (finished)