2026-06-16 04:20:30 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-06-16 04:20:30 [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 04:20:30 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-06-16 04:20:30 [asyncio] DEBUG: Using selector: EpollSelector
2026-06-16 04:20:30 [scrapy.addons] INFO: Enabled addons:
[]
2026-06-16 04:20:30 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-06-16 04:20:30 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-06-16 04:20:30 [scrapy.extensions.telnet] INFO: Telnet Password: 484e7421090f6f1b
2026-06-16 04:20:30 [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 04:20:30 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x767022728540>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/canaan_library/f018b8ff692911f192060050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-06-16 04:20:30 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 04:20:30 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-06-16 04:20:30 [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 04:20:30 [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 04:20:30 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-06-16 04:20:30 [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 04:20:30 [scrapy.core.engine] INFO: Spider opened
2026-06-16 04:20:30 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.canaan_library.CannanLibrarySpider 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 04:20:30 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-06-16 04:20:30 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-06-16 04:20:31 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list> (referer: None)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161839> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:32 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161839>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161839',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/21" '
'href="/events/week/2026/06/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/21" '
'href="/events/day/2026/06/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, June 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/adaptive-movie-afternoon-adults-222147> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203733> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/advanced-excel-introduction-vba-automation-221639> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:32 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/adaptive-movie-afternoon-adults-222147>
{'event_url': 'https://www.newcanaanlibrary.org/event/adaptive-movie-afternoon-adults-222147',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Adaptive Movie Afternoon for Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/20" '
'href="/events/week/2026/06/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/20" '
'href="/events/day/2026/06/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, June 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5741/lc_featured_image?alternative_text=Project%20Social%20Logo"><img '
'alt="Project Social Logo" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/project%20social.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222147/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222147/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'20, 2026 @ 2:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a viewing of '
'Zootopia! We will provide popcorn, candy, and drinks.\xa0'
'</p><p>Who should sign up? This class welcomes adults with '
'developmental disabilities. In order to attend alone, '
'participants need to be independent in a group and able to '
'follow 1-2 step directions with prompting or volunteer '
'assistance. If they require additional support, a caregiver must '
'stay with them.</p><p>About the instructors: Led by Tess and '
'Addi MacKenzie whose lived experience and professional '
'backgrounds in disability advocacy, and long-standing commitment '
'to community inclusion inspired the creation of Project '
'Social.\xa0</p><p><br/>\xa0</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/adaptive-movie-afternoon-adults-222147" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-4wyitdkd7ckup058yihfnr320fp0fui3kl41mcaknwu" '
'name="form_build_id" type="hidden" '
'value="form-4WYitdkd7Ckup058yIHFNR320fp0FUI3Kl41McAknwU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#402b37392e2e25002e253723212e21212e2c2922322132396e2f3227">\n'
'<span class="__cf_email__" '
'data-cfemail="cfa4b8b6a1a1aa8fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:32 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203733>
{'event_url': 'https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203733',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Sewing Machine First Time for Ages 8-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:00pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/sewing-machine-first-time-ages-8-12-203733">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203734">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203735">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203733/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203733/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for an introduction to '
'sewing machines. \xa0This class is intended for absolute '
'beginners who have never used a sewing machine before between '
'the ages of 8 and 12! \xa0Instructor LeeAnn will walk students '
"through sewing machine safety, setup and basic use. We'll put "
'our knowledge to use with a beginner friendly project.\xa0\xa0'
'</p><p><em>Registration opens May 1 at 8am. <strong>This '
'workshop will be offered three times (June 22, July 9, and '
'August 4) \xa0this summer to introduce as many kids as possible '
'to the sewing machine. \xa0Please only register for one '
'session.\xa0</strong></em></p><p><strong>These sessions are made '
'possible by a generous grant from the New Canaan Artisans.\xa0'
'</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#06656e6f6a62466863716567686767686a6f647467747f28697461"><span '
'class="__cf_email__" '
'data-cfemail="711219181d15311f140612101f10101f1d1813031003085f1e0316">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/sewing-machine-first-time-ages-8-12-203733" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-yegr4zl9w9bxy0e1v0tmgus-epgkch6bqltgjgv4198" '
'name="form_build_id" type="hidden" '
'value="form-YEgr4Zl9w9bxY0e1v0TmguS-EpGkCH6bqLtGJGV4198"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0d6160646161687f4d63687a6e6c636c6c6361646f7f6c7f7423627f6a">\n'
'<span class="__cf_email__" '
'data-cfemail="c8a4a5a1a4a4adba88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=1> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:32 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/advanced-excel-introduction-vba-automation-221639>
{'event_url': 'https://www.newcanaanlibrary.org/event/advanced-excel-introduction-vba-automation-221639',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Advanced Excel: Introduction to VBA & '
'Automation</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:15pm–7:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5731/lc_featured_image?alternative_text=VBA%20Excel%20image%20"><img '
'alt="VBA Excel image " class="img-fluid" height="265" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/ms-excel-vba-1024x566%20%281%29.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221639/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221639/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Move beyond formulas and '
'PivotTables in this advanced workshop on Excel VBA (Visual Basic '
'for Applications). Learn how to automate repetitive tasks, '
'create custom macros, and streamline workflows using Excel’s '
'built-in programming language. Topics include recording and '
'editing macros, navigating the VBA editor, and building simple '
'automation tools.</p><p><strong>Prerequisites: '
'</strong>Participants should be comfortable with advanced Excel '
'features, including formulas, PivotTables, and data '
'management.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/advanced-excel-introduction-vba-automation-221639" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-lmlgdazccolxmkioh4jaa7bcopsjqb8bmkssxvu58pq" '
'name="form_build_id" type="hidden" '
'value="form-lMlgdAZcCOLXMKIOH4jaA7BcopSJqb8BMksSXvu58PQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#423629273b022c273521232c23232c2e2b203023303b6c2d3025">\n'
'<span class="__cf_email__" '
'data-cfemail="c0b4aba5b980aea5b7a3a1aea1a1aeaca9a2b2a1b2b9eeafb2a7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180881> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/bubble-show-see-marie-190531> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-180425> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223488> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3d-printer-training-ages-8-adult-225982> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/kate-doerge-presents-reimagining-grief-209303> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180881>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180881',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/23" '
'href="/events/week/2026/06/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/23" '
'href="/events/day/2026/06/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'<div '
'class="lc-event-info-cancelled"><strong>Cancelled</strong></div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180881/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180881/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180881/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9ff0f1f3f6f1faedfaf9dff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">\n'
'<span class="__cf_email__" '
'data-cfemail="1c7372707572796e797a5c72796b7f7d727d7d7270757e6e7d6e6532736e7b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/bubble-show-see-marie-190531>
{'event_url': 'https://www.newcanaanlibrary.org/event/bubble-show-see-marie-190531',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Bubble Show for All Ages</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Merrill Event Lawn\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5556/lc_featured_image?alternative_text=Guy%20doing%20bubble%20show"><img '
'alt="Guy doing bubble show" class="img-fluid" height="470" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-03/IMG_7123.jpeg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/190531/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/190531/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/190531/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Bubbles and joy for all! Step '
'into a world of shimmering spheres and interactive enchantment '
'with Bubble Guy’s unforgettable bubble show. This dazzling '
'experience will leave you wide-eyed and smiling. This show '
'includes different sized bubbles, a little bit of foam and smoke '
'bubbles! Great for All Ages! Bring a blanket or a chair and '
'drop-in on the Merrill Event Lawn for this bubbletastic show!\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#54373c3d3830143a312337353a35353a383d362635262d7a3b2633"><span '
'class="__cf_email__" '
'data-cfemail="ec8f84858088ac82899b8f8d828d8d8280858e9e8d9e95c2839e8b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#beccd8d1c6fed0dbc9dddfd0dfdfd0d2d7dcccdfccc790d1ccd9">\n'
'<span class="__cf_email__" '
'data-cfemail="ed9f8b8295ad83889a8e8c838c8c8381848f9f8c9f94c3829f8a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-180425>
{'event_url': 'https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-180425',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beginner & Intermediate ESL Class</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180402">\n'
' 01/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180405">\n'
' 02/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180406">\n'
' 02/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180409">\n'
' 03/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180410">\n'
' 03/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180411">\n'
' 03/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180412">\n'
' 03/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180413">\n'
' 03/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180414">\n'
' 04/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180415">\n'
' 04/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180416">\n'
' 04/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180417">\n'
' 04/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180418">\n'
' 05/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180419">\n'
' 05/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180420">\n'
' 05/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180422">\n'
' 06/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180423">\n'
' 06/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-esl-class-180424">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/beginner-intermediate-esl-class-180425">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/2542/lc_featured_image?alternative_text=ELL%20Image"><img '
'alt="ELL Image" class="img-fluid" height="148" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-03/ELL%20IMAGE_0.jpeg" '
'width="260"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180425/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180425/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'22, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for our Beginner & '
'Intermediate English Language Learning Class on Mondays at 6:30 '
'pm.\xa0\xa0</p><p>Students will discuss topics related to '
'current events, American culture, and fun facts, focusing on '
'developing speaking and listening comprehension skills.\xa0'
'</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/beginner-intermediate-esl-class-180425" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-zwt98oktmf0f3d-l98kzxsvswxx9f2w9p3pmogp00j4" '
'name="form_build_id" type="hidden" '
'value="form-zWt98OKTmf0f3D-l98KzXsvSWXx9f2W9p3PMOGp00j4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#67130c021e270902100406090606090b0e051506151e49081500">\n'
'<span class="__cf_email__" '
'data-cfemail="add9c6c8d4edc3c8daceccc3ccccc3c1c4cfdfccdfd483c2dfca">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Nereida Rama\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223488>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223488',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/20" '
'href="/events/week/2026/06/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/20" '
'href="/events/day/2026/06/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, June 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223488/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223488/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223488/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#147b7a787d7a71667172547a716377757a75757a787d766675666d3a7b6673"><span '
'class="__cf_email__" '
'data-cfemail="0e61606267606b7c6b684e606b796d6f606f6f6062676c7c6f7c7720617c69">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#fd959e9490949392bd93988a9e9c939c9c9391949f8f9c8f84d3928f9a">\n'
'<span class="__cf_email__" '
'data-cfemail="9cf4fff5f1f5f2f3dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 11631
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3d-printer-training-ages-8-adult-225982>
{'event_url': 'https://www.newcanaanlibrary.org/event/3d-printer-training-ages-8-adult-225982',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>3D Printer Training for Ages 8-Adult</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/20" '
'href="/events/week/2026/06/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/20" '
'href="/events/day/2026/06/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, June 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225982/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225982/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>This is a small-group training '
'session to learn how to use the BambuLab P1S 3D printer in the '
"Library's MakerLab. \xa0<strong>This session is open to ages "
'8-adult. \xa0Please include every person who will be attending '
'when you register.\xa0</strong></p><p>\xa0This session will '
'cover:</p><ul><li>how to design and find projects to '
'print</li><li>how to set up a print in Bambu Studio including '
'important settings and multi-color prints</li><li>how to reserve '
"the library's 3D printer for your own projects\xa0</li><li>ideas "
'for future printing</li></ul><p>During this session we will '
"design and print a 'clicker' fidget as our hands-on example "
'project for how to do the above steps. Depending on the number '
'of people printing at the session, you may need to return to the '
'library to pick up your finished design. \xa0</p><p>\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#c5a6adaca9a185aba0b2a6a4aba4a4aba9aca7b7a4b7bcebaab7a2"><span '
'class="__cf_email__" '
'data-cfemail="f4979c9d9890b49a918397959a95959a989d968695868dda9b8693">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3d-printer-training-ages-8-adult-225982" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-xjfy3zynzzde9zsbfzl4vouuxyt3odb9grdgrxlkrgc" '
'name="form_build_id" type="hidden" '
'value="form-xJfY3zYnZzDe9zSBFZL4VOuuxYt3odb9GrdGRxLKRgc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#701c1d191c1c1502301e150713111e11111e1c1912021102095e1f0217">\n'
'<span class="__cf_email__" '
'data-cfemail="95f9f8fcf9f9f0e7d5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/kate-doerge-presents-reimagining-grief-209303>
{'event_url': 'https://www.newcanaanlibrary.org/event/kate-doerge-presents-reimagining-grief-209303',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Kate Doerge Presents Reimagining Grief, in conversation '
'with Holly Parmelee</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 7:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5723/lc_featured_image?alternative_text=Book%20cover%20at%20left%20with%20leaf%20patterns%20in%20white%20and%20maize%2C%203/4%20author%20photo%20at%20right%20of%20white%20woman%20with%20short%20blonde%20hair%2C%20dressed%20in%20white%20and%20seated%20on%20stool"><img '
'alt="Book cover at left with leaf patterns in white and maize, '
'3/4 author photo at right of white woman with short blonde hair, '
'dressed in white and seated on stool" class="img-fluid" '
'height="300" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Reimagining%20Grief.png" '
'width="400"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209303/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209303/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'17, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p class="Paragraph SCXW207584611 '
'BCX0" lang="EN-US">“Reimagining Grief is a deeply personal yet '
'practical guide for anyone navigating the aftermath of '
"devastating loss. Kate doesn't offer easy answers— she gives us "
'something far more valuable: her own story, and proof that a '
'life can be rebuilt, not in spite of sorrow, but through '
'it.” \xa0</p><p class="Paragraph SCXW207584611 BCX0" '
'lang="EN-US"><strong>— Belle Burden, #1 New York Times '
'bestselling author of </strong><em><strong>Strangers: A Memoir '
'of Marriage</strong></em>\xa0</p><p class="Paragraph '
'SCXW207584611 BCX0" lang="EN-US">Every single one of us '
'experiences grief. Author and grief coach Kate Doerge offers '
'five actions that can help ground us when we feel out of '
"control, lift us when we're depleted, and help us process the "
'pain of loss. \xa0</p><p class="Paragraph SCXW207584611 BCX0" '
'lang="EN-US">Kate Doerge lost her father to heart failure, her '
'mother in a car accident five days before Christmas, and her '
'sixteen-year-old daughter, Penny, to complications from a rare '
'genetic condition. Following Penny’s death, Kate knew she had a '
'choice: She could lose herself to a grief so powerful she might '
'not come back from it, or she could find another way through. '
'Drawing from her own experience, the latest research, and '
'conversations with others who have faced devastating loss, Kate '
'offers some light and healing in the midst of darkness. '
'<em>Reimaging Grief </em>includes guidance on finding your own '
'path through grief, what post-traumatic growth really looks '
'like, turning pain into purpose, and much more. \xa0</p><p '
'class="Paragraph SCXW207584611 BCX0" lang="EN-US">Kate Doerge is '
'a nonprofit founder, philanthropist, speaker, and brand '
"strategist. She is the Co-founder and CEO of Penny's Flight "
'Foundation, raising awareness and funding for Neurofibromatosis '
'(NF).\xa0</p><p class="Paragraph SCXW207584611 BCX0" '
'lang="EN-US">Sara Bliss is a best-selling author and brand '
'consultant. Her articles on celebrities, travel, beauty, and '
'wellness have appeared in the <em>Wall Street Journal, Town '
'& Country, </em>and <em>Travel & Leisure.\xa0'
'</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/kate-doerge-presents-reimagining-grief-209303" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-vwllgjknimwiqrfxvioy0svv16hhaq-znezqp8gwpm" '
'name="form_build_id" type="hidden" '
'value="form-_vwlLgJKnimwIqrfXviOy0sVV16HHAQ-znezQp8GWpM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d1bca1bea3a5b091bfb4a6b2b0bfb0b0bfbdb8b3a3b0a3a8ffbea3b6">\n'
'<span class="__cf_email__" '
'data-cfemail="83eef3ecf1f7e2c3ede6f4e0e2ede2e2edefeae1f1e2f1faadecf1e4">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-juneteenth-139611> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chair-yoga-222234> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gentle-yoga-224156> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-cooking-class-193315> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/score-fairfield-county-financial-planning-class-209887> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168839> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/adaptive-makerlab-workshop-teens-and-young-adults-224256> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/find-your-next-read-novelist-plus-221087> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-206080> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217704> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/beginner-intermediate-spanish-conversation-group-adults-219713> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:33 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:33 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-juneteenth-139611>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-juneteenth-139611',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Juneteenth</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/19" '
'href="/events/week/2026/06/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/19" '
'href="/events/day/2026/06/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Friday, June 19, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chair-yoga-222234>
{'event_url': 'https://www.newcanaanlibrary.org/event/chair-yoga-222234',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chair Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:30am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-222233">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chair-yoga-222234">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-222235">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222234/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222234/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'22, 2026 @ 11:30am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We are pleased to continue our '
'partnership with the New Canaan YMCA to bring you Chair '
'Yoga.</p><p>With the support of a chair, this gentle Chair Yoga '
'class will help you improve postural alignment, maintain pelvic '
'mobility, reduce muscle\xa0tension and gain strength through '
'flowing movements and focused breathing.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#0f60616366616a7d6a694f616a786c6e616e6e6163666d7d6e7d7621607d68"><span '
'class="__cf_email__" '
'data-cfemail="bcd3d2d0d5d2d9ced9dafcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/chair-yoga-222234" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-3-az-i3ff881ovxxskxucmjhssdchebgkp5du-tu2m" '
'name="form_build_id" type="hidden" '
'value="form--3-az_i3ff881OVXxSkxuCMJhsSDChEBgKp5DU_tU2M"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#becad5dbc7fed0dbc9dddfd0dfdfd0d2d7dcccdfccc790d1ccd9">\n'
'<span class="__cf_email__" '
'data-cfemail="0f7b646a764f616a786c6e616e6e6163666d7d6e7d7621607d68">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gentle-yoga-224156>
{'event_url': 'https://www.newcanaanlibrary.org/event/gentle-yoga-224156',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gentle Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/22" '
'href="/events/week/2026/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/22" '
'href="/events/day/2026/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224156/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224156/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'22, 2026 @ 10:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We have teamed up with the New '
'Canaan YMCA to create a tranquil, foundation-building class '
'designed to introduce new students to yoga, as well as offer '
'regular practitioners a gentle class to complement their yoga '
'practice. <strong>Participants must bring their own yoga mat. '
'</strong>Yoga blocks are optional. The class is designed to have '
'modified poses so everyone has the best experience.\xa0'
'</p><p><strong>About the instructor:\xa0</strong>Martha Risom '
'has been teaching gentle yoga for over decade. She continues to '
"be inspired by her students and yoga's ability to lead us toward "
'a path of physical, mental, emotional and spiritual well '
'being.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/gentle-yoga-224156" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-qh19l2k0v6twlfn4kvdmik53-rvzyswx4jbtdpyhuo8" '
'name="form_build_id" type="hidden" '
'value="form-qH19l2K0V6Twlfn4Kvdmik53_rVzySWX4JbTdpYHuO8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#46322d233f062823312527282727282a2f243427343f68293421">\n'
'<span class="__cf_email__" '
'data-cfemail="15617e706c557b706276747b74747b797c776774676c3b7a6772">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' YMCA of New Canaan \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-cooking-class-193315>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-cooking-class-193315',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Hand Pies Around the World: A Delicious Journey Through '
'History</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/20" '
'href="/events/week/2026/06/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/20" '
'href="/events/day/2026/06/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Kitchen + Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, June 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/193315/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/193315/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B257%5D=257">Cooking</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'20, 2026 @ 11:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>From the rugged tin mines of '
'19th-century Cornwall to street food stalls across six '
'continents, the hand pie is one of the most universal and '
'enduring foods in human history.\xa0 Portable, satisfying, and '
'endlessly adaptable, these handheld pastries tell the story of '
'the people who made them — their geography, their labor, their '
'ingenuity, and their taste.</p><p>In this demo-style class, '
'culinary educator and gastronome Lamour Workman traces the '
'fascinating global lineage of the hand pie, beginning with the '
'iconic Cornish pasty — a hearty filling of meat, potato, and '
'vegetables crimped inside a golden crust, designed to sustain '
"miners through long shifts underground.\xa0 From there, we'll "
'explore how cultures around the world developed their own '
'beloved versions, each shaped by local ingredients, traditions, '
'and culinary identity.</p><p>Watch, taste, and travel — no '
'passport required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-cooking-class-193315" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-sogluv6z0zdxxg5rarvbe0tnnf1bm5v9-mk3oapw4sg" '
'name="form_build_id" type="hidden" '
'value="form-SOgluV6Z0ZDxXG5RarvbE0TNnF1Bm5v9-mK3OaPW4Sg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ee868d8783878081ae808b998d8f808f8f8082878c9c8f9c97c0819c89">\n'
'<span class="__cf_email__" '
'data-cfemail="f69e959f9b9f9899b69893819597989797989a9f948497848fd8998491">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221790/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221790/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221790/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here:<a '
'href="https://Join%20Financial%20Advisors%20Julia%20Strayer%20and%20Liz%20Maccarone%20for%20a%20series%20of%20easy-to-follow%20discussions%20on%20how%20to%20make%20sense%20of%20today%E2%80%99s%20financial%20markets.%20They%20will%20cover%20the%20latest%20market%20news%20and%20how%20that%20might%20affect%20your%20financial%20decisions.%20Julia%20and%20Liz%20will%20also%20provide%20background%20and%20context%20for%20understanding%20why%20market%20movement%20occurs,%20and%20strategies%20for%20keeping%20ahead%20of%20what%20might%20come.%20%20This%20series%20is%20hosted%20by%20Darien%20Library.%20%20Register%20here:%20https://darienlibrary.zoom.us/webinar/register/WN_AsI-qvYdRnaMqirkl70Ieg#/registration"> '
'<strong>https://darienlibrary.zoom.us/webinar/register/WN_AsI-qvYdRnaMqirkl70Ieg#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#147f636d7a7a71547a716377757a75757a787d766675666d3a7b6673">\n'
'<span class="__cf_email__" '
'data-cfemail="c8a3bfb1a6a6ad88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/score-fairfield-county-financial-planning-class-209887>
{'event_url': 'https://www.newcanaanlibrary.org/event/score-fairfield-county-financial-planning-class-209887',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Make Money with Affiliate Marketing on Amazon presented by '
'SCORE</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209887/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209887/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209887/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn how to make money using '
'Amazon and other affiliate relationships. Highlight the products '
'you like and get paid when your audience purchases them. Step by '
'step plan to get started. You will learn: - How to set up your '
'Affiliate Page on Amazon - Build an audience on a blog, '
'newsletter and social media - Share your ideal products in '
'creative ways.</p><p><a '
'href="https://score.tfaforms.net/112?EventID=a10Vt00000OqK4r&origination=https://www.score.org/ct/western-connecticut/business-education/"><strong>REGISTER '
'HERE</strong></a></p><hr/><p><strong>Presenter: Holly '
'Hurd</strong></p><p>Holly Hurd is the founder of VentureMom.com, '
'a blog and platform devoted to sharing the stories of women who '
'have their own businesses in order to inspire others to do the '
'same. Holly has interviewed hundreds of women on her blog, '
'making her uniquely qualified to speak on blogging and the small '
'business start-up. In her book, VentureMom: From Idea to Income '
'in Just 12 Weeks, Holly gives founders a step by step guide to '
'creating their own income.</p><p>\xa0</p><p>\xa0'
'</p><p>I</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3a4e515f437a545f4d595b545b5b54565358485b48431455485d">\n'
'<span class="__cf_email__" '
'data-cfemail="3b4f505e427b555e4c585a555a5a55575259495a49421554495c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168839>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168839',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/23" '
'href="/events/week/2026/06/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/23" '
'href="/events/day/2026/06/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168839/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168839/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168839/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#f7949f9e9b93b79992809496999696999b9e958596858ed9988590"><span '
'class="__cf_email__" '
'data-cfemail="67040f0e0b03270902100406090606090b0e051506151e49081500">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#384a5e574078565d4f5b595659595654515a4a594a4116574a5f">\n'
'<span class="__cf_email__" '
'data-cfemail="1062767f68507e756773717e71717e7c7972627162693e7f6277">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/adaptive-makerlab-workshop-teens-and-young-adults-224256>
{'event_url': 'https://www.newcanaanlibrary.org/event/adaptive-makerlab-workshop-teens-and-young-adults-224256',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Adaptive Craft Workshop for Teens and Young Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224256/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224256/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'17, 2026 @ 6:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 14 and above.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>This is an adaptive art and '
'craft class for teens and young adults with disabilities. Join '
"us in the library's MakerLab to make mini felt photo frames. In "
'this class we’ll use felt, beads, and yarn to create '
'personalized felt photo frames. We’ll practice a variety of '
'skills including cutting, hand sewing, glueing, and stringing '
'beads. Participants will choose whether they want their frame to '
'have a magnet on the back or hang from a ribbon.\xa0</p><p>Who '
'should sign up? <strong>This class welcomes teens ages 14+ and '
'young adults with disabilities.</strong> In order to attend '
'alone, participants need to be independent in a group and able '
'to follow 1-2 step directions with prompting or volunteer '
'assistance. If they require additional support, a parent or '
'staff must stay with them.<br/>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#97f4fffefbf3d7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0"><span '
'class="__cf_email__" '
'data-cfemail="f99a9190959db9979c8e9a989798989795909b8b988b80d7968b9e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/adaptive-makerlab-workshop-teens-and-young-adults-224256" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-9n6zj7ybsm93lb2ihcydyemixbrgaf6bgfi2il9qsjq" '
'name="form_build_id" type="hidden" '
'value="form-9N6ZJ7YbSM93lB2iHcYdYeMIxBrGaf6bGfI2iL9qsjQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#402c2d292c2c2532002e253723212e21212e2c2922322132396e2f3227">\n'
'<span class="__cf_email__" '
'data-cfemail="7d1110141111180f3d13180a1e1c131c1c1311141f0f1c0f0453120f1a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/find-your-next-read-novelist-plus-221087>
{'event_url': 'https://www.newcanaanlibrary.org/event/find-your-next-read-novelist-plus-221087',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Find Your Next Read with NoveList Plus</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221087/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221087/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'18, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you looking for your next '
'summer read? Join reference librarian Flannery to explore '
'<em><strong>NoveList Plus</strong></em>, a readers advisory '
'service that lets users search for read-a-likes, reading '
'recommendations, and offers genre-focused browsing.\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/find-your-next-read-novelist-plus-221087" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-otj51kiruuq3bogm6gv9ceukhj0jyizxmdtcj5iwq2q" '
'name="form_build_id" type="hidden" '
'value="form-OTJ51KiruUQ3BOgm6gV9CEuKHj0JyIZxMDtCj5Iwq2Q"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ea8c9a8386868385848d8b988e848f98aa848f9d898b848b8b84868388988b9893c485988d">\n'
'<span class="__cf_email__" '
'data-cfemail="ddbbadb4b1b1b4b2b3babcafb9b3b8af9db3b8aabebcb3bcbcb3b1b4bfafbcafa4f3b2afba">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945082">\n'
' (203) 594-5082\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-206080>
{'event_url': 'https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-206080',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Papercraft Moth: Take and Make Craft Pick Up for Ages 12 '
'to 19</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-206079">\n'
' 05/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-206080">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5668/lc_featured_image?alternative_text=Photo%20of%20a%20moth%20made%20out%20of%20paper%20and%20cotton%20balls"><img '
'alt="Photo of a moth made out of paper and cotton balls" '
'class="img-fluid" height="476" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20115131.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206080/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206080/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'17, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 19.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Swing by the library to pick up '
'the supplies for a make-at-home craft! Everything you need will '
"be in your kit, so it's perfect for a study break or long "
'weekend trip.\xa0</p><p>Note: This event is listed as a window '
'of time for pick-ups, there is no class or program associated '
'with this craft! You can pick up your kit starting at 5 PM until '
'the library closes. Kits that are not claimed, will be put out '
'for the general public. Thank you!\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/craft-take-and-make-craft-pick-ages-12-19-206080" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ynmmnkc6x9c5ykzejogq3b3kpaeouqq4vtlgzth-rna" '
'name="form_build_id" type="hidden" '
'value="form-YnMMNkc6X9c5YkZeJOgQ3B3kpAeOuQq4vtLGztH_rnA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e4898c9190908ba48a819387858a85858a888d869685969dca8b9683">\n'
'<span class="__cf_email__" '
'data-cfemail="0964617c7d7d6649676c7e6a686768686765606b7b687b7027667b6e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:34 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:34 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:34 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217704>
{'event_url': 'https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217704',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Magic: The Gathering Meetup for ages 12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/17" '
'href="/events/week/2026/06/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/17" '
'href="/events/day/2026/06/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/magic-gathering-meetup-ages-12-18-217704">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217705">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217706">\n'
' 08/19/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5265/lc_featured_image?alternative_text=Magic%20the%20Gathering%20Logo%20over%20a%20digital%20painting%20of%20fantasy%20knights%20and%20creatures"><img '
'alt="Magic the Gathering Logo over a digital painting of fantasy '
'knights and creatures" class="img-fluid" height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/magic-the-gathering-header-1-314913123.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217704/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217704/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'17, 2026 @ 6:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a friendly session '
'of Modern Casual Magic: The Gathering! Beginners and players of '
'any experience are more than welcome to join. Please bring your '
'own standard deck if possible!\xa0</p><p>The Library will '
'provide mats and dice. We also have a few standard decks '
'available if you do not have one. Please pre-register.\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/magic-gathering-meetup-ages-12-18-217704" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-emsqojemamretieu9v-oar0-nfgrhxaksgg8vr5ddek" '
'name="form_build_id" type="hidden" '
'value="form-EMsQOJEMAMREtIEU9v-oAR0-nfgRHxaksGG8VR5dDek"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f39e9b8687879cb39d968490929d92929d9f9a918192818add9c8194">\n'
'<span class="__cf_email__" '
'data-cfemail="cca1a4b9b8b8a38ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/beginner-intermediate-spanish-conversation-group-adults-219713>
{'event_url': 'https://www.newcanaanlibrary.org/event/beginner-intermediate-spanish-conversation-group-adults-219713',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beginner to Intermediate Spanish Conversation Group for '
'Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/16" '
'href="/events/week/2026/06/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/16" '
'href="/events/day/2026/06/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-spanish-conversation-group-adults-219711">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/beginner-intermediate-spanish-conversation-group-adults-219712">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/beginner-intermediate-spanish-conversation-group-adults-219713">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219713/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219713/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'16, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>Our Spanish Conversation '
'group is designed for individuals with advanced beginner or '
'intermediate skills.</strong> This lively, instructor-led '
'session focuses on helping participants grow their confidence, '
'expand their vocabulary, and strengthen their ability to speak '
'comfortably in real-world situations. Each meeting offers guided '
'conversation practice, thematic prompts, and gentle correction '
'to support continued progress. While the atmosphere is relaxed '
'and welcoming, the class is conducted primarily in Spanish, so a '
'basic foundation in the language is essential.\xa0'
'</p><p><br/>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/beginner-intermediate-spanish-conversation-group-adults-219713" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-hocgyt7evhdrh15u8s2cmddeangdnkopoiiey6nzhba" '
'name="form_build_id" type="hidden" '
'value="form-HOCgyt7eVHDRH15u8s2CmdDEAngdNkOPoIIEy6nZHbA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#daaeb1bfa39ab4bfadb9bbb4bbbbb4b6b3b8a8bba8a3f4b5a8bd">\n'
'<span class="__cf_email__" '
'data-cfemail="d0a4bbb5a990beb5a7b3b1beb1b1bebcb9b2a2b1a2a9febfa2b7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Piedad Calderon \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168838> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180880> (referer: https://www.newcanaanlibrary.org/events/list)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=2> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218074> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-226966> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168840> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180882> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/alzheimers-and-dementia-support-group-waveny-lifecare-network-206813> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221986> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219780> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219757> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168838>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168838',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/16" '
'href="/events/week/2026/06/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/16" '
'href="/events/day/2026/06/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168838/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168838/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168838/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ccafa4a5a0a88ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab"><span '
'class="__cf_email__" '
'data-cfemail="06656e6f6a62466863716567686767686a6f647467747f28697461">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7301151c0b331d160410121d12121d1f1a110112010a5d1c0114">\n'
'<span class="__cf_email__" '
'data-cfemail="760410190e361813011517181717181a1f140417040f58190411">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180880>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180880',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/16" '
'href="/events/week/2026/06/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/16" '
'href="/events/day/2026/06/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180880/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180880/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180880/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6708090b0e0902150201270902100406090606090b0e051506151e49081500">\n'
'<span class="__cf_email__" '
'data-cfemail="2946474540474c5b4c4f69474c5e4a484748484745404b5b485b5007465b4e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218074>
{'event_url': 'https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218074',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>EV3 Robotics with Happy Code Club for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/30" '
'href="/events/week/2026/06/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/30" '
'href="/events/day/2026/06/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218074/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218074/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn the basics of programming '
'robots with EV3 Lego Mindstorms, using a First Lego League '
'training guide led by Happy Code Club. \xa0We will explore '
'coding concepts as we program our robot to complete challenges '
'and compete in games. For students in grades 5-8 in Fall '
'2026.</p><p><em>Registration opens May 1 at 8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#44272c2d2820042a213327252a25252a282d263625363d6a2b3623"><span '
'class="__cf_email__" '
'data-cfemail="23404b4a4f47634d465440424d42424d4f4a415142515a0d4c5144">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/ev3-robotics-happy-code-club-grades-5-8-218074" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-vgyyu964nj9pukswem5qy1qxlns3x3apxgwfryuxf3w" '
'name="form_build_id" type="hidden" '
'value="form-vGYyU964nj9pUkSwEm5QY1QxLNS3X3aPXgwFRyUxF3w"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#fa96979396969f88ba949f8d999b949b9b94969398889b8883d495889d">\n'
'<span class="__cf_email__" '
'data-cfemail="610d0c080d0d0413210f041602000f00000f0d0803130013184f0e1306">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-226966>
{'event_url': 'https://www.newcanaanlibrary.org/event/beginner-intermediate-esl-class-226966',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beginner & Intermediate ESL Class</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/2542/lc_featured_image?alternative_text=ELL%20Image"><img '
'alt="ELL Image" class="img-fluid" height="148" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-03/ELL%20IMAGE_0.jpeg" '
'width="260"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226966/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226966/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'29, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for our Beginner & '
'Intermediate English Language Learning Class on Mondays at 6:30 '
'pm.\xa0\xa0</p><p>Students will discuss topics related to '
'current events, American culture, and fun facts, focusing on '
'developing speaking and listening comprehension skills.\xa0'
'</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/beginner-intermediate-esl-class-226966" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-c7wnbewday5rrctjbpdbcqctvdicr1qzaugbbbzlkdk" '
'name="form_build_id" type="hidden" '
'value="form-c7WNBEWdAy5RRctJbpDbcqCTVDIcr1qZAUgbbBzlKdk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#54203f312d143a312337353a35353a383d362635262d7a3b2633">\n'
'<span class="__cf_email__" '
'data-cfemail="14607f716d547a716377757a75757a787d766675666d3a7b6673">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Nereida Rama\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168840>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168840',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/30" '
'href="/events/week/2026/06/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/30" '
'href="/events/day/2026/06/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168840/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168840/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168840/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#93f0fbfafff7d3fdf6e4f0f2fdf2f2fdfffaf1e1f2e1eabdfce1f4"><span '
'class="__cf_email__" '
'data-cfemail="5c3f343530381c32392b3f3d323d3d3230353e2e3d2e2572332e3b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ccbeaaa3b48ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab">\n'
'<span class="__cf_email__" '
'data-cfemail="a9dbcfc6d1e9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:35 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:35 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:35 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180882>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180882',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/30" '
'href="/events/week/2026/06/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/30" '
'href="/events/day/2026/06/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180882/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180882/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180882/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7c1312101512190e191a3c12190b1f1d121d1d1210151e0e1d0e0552130e1b">\n'
'<span class="__cf_email__" '
'data-cfemail="5f30313336313a2d3a391f313a283c3e313e3e3133363d2d3e2d2671302d38">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/alzheimers-and-dementia-support-group-waveny-lifecare-network-206813>
{'event_url': 'https://www.newcanaanlibrary.org/event/alzheimers-and-dementia-support-group-waveny-lifecare-network-206813',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Alzheimer's and Dementia Support Group with the Waveny "
'LifeCare Network</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/01" '
'href="/events/week/2026/07/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/01" '
'href="/events/day/2026/07/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–3:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206813/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206813/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'1, 2026 @ 2:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Family members, caregivers, and '
'friends are invited to meet for informative and supportive group '
'sessions to help navigate changes related to memory loss and '
'cognitive decline. Join us at 2:00 pm for our free Caregiver '
'Peer Support Group.</p><p>This event will be facilitated by '
'Chris DiElsi, a Licensed Master Social Worker (LMSW) and an '
"Alzheimer's Navigator\xa0at Waveny LifeCare Network. Attendees "
'can find guidance, offer support, and ask questions in a safe '
'environment.</p><p>Each meeting you can expect '
'to:</p><ul><li>Discuss and provide coping techniques & '
'strategies</li><li>Share stories and experiences of your own '
'journey</li><li>Share feelings, needs, and '
'concerns</li><li>Learn about community resources</li></ul><p>The '
'registration list for this event will be shared with Waveny '
'LifeCare.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#92fdfcfefbfcf7e0f7f4d2fcf7e5f1f3fcf3f3fcfefbf0e0f3e0ebbcfde0f5"><span '
'class="__cf_email__" '
'data-cfemail="cda2a3a1a4a3a8bfa8ab8da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/alzheimers-and-dementia-support-group-waveny-lifecare-network-206813" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-1q1-zwpfaf3pnk8kikhxo3-3ajwr281p66ugymocq-e" '
'name="form_build_id" type="hidden" '
'value="form-1q1_ZwPFAF3pNK8kIKhXO3-3AJWR281P66uGYMocq_E"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d9adb2bca099b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">\n'
'<span class="__cf_email__" '
'data-cfemail="94e0fff1edd4faf1e3f7f5faf5f5faf8fdf6e6f5e6edbafbe6f3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221986>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221986',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/30" '
'href="/events/week/2026/06/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/30" '
'href="/events/day/2026/06/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221986/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221986/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'23, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#d2bdbcbebbbcb7a0b7b492bcb7a5b1b3bcb3b3bcbebbb0a0b3a0abfcbda0b5"><span '
'class="__cf_email__" '
'data-cfemail="cda2a3a1a4a3a8bfa8ab8da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221986" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-nk1qr-whtdd5uz6rhf252fbnc8fqpq-yxbegqdbm3gw" '
'name="form_build_id" type="hidden" '
'value="form-nk1Qr-WhTDD5Uz6rHF252fBNC8Fqpq_yXbEgQdBm3Gw"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6d190608142d03081a0e0c030c0c0301040f1f0c1f1443021f0a">\n'
'<span class="__cf_email__" '
'data-cfemail="bbcfd0dec2fbd5deccd8dad5dadad5d7d2d9c9dac9c295d4c9dc">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219780>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219780',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/01" '
'href="/events/week/2026/07/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/01" '
'href="/events/day/2026/07/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219780/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219780/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'1, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#a1c2c9c8cdc5e1cfc4d6c2c0cfc0c0cfcdc8c3d3c0d3d88fced3c6"><span '
'class="__cf_email__" '
'data-cfemail="1b787372777f5b757e6c787a757a7a75777279697a69623574697c">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219780" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-rlaxdsw4bhsia-gf3gnmu0fdydelzugsxxiqs2ensss" '
'name="form_build_id" type="hidden" '
'value="form-rlAXDsW4BHsiA_Gf3GnmU0fdYdELzUGsXxIqs2eNsss"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4a382c25320a242f3d292b242b2b24262328382b38336425382d">\n'
'<span class="__cf_email__" '
'data-cfemail="abd9cdc4d3ebc5cedcc8cac5cacac5c7c2c9d9cad9d285c4d9cc">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219757>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219757',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/01" '
'href="/events/week/2026/07/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/01" '
'href="/events/day/2026/07/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219757/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219757/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'1, 2026 @ 9:15am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#76151e1f1a12361813011517181717181a1f140417040f58190411"><span '
'class="__cf_email__" '
'data-cfemail="f7949f9e9b93b79992809496999696999b9e958596858ed9988590">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219757" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-rr1cezki-becddf1o-c3ncp6hfrg21glvyhljez6cjk" '
'name="form_build_id" type="hidden" '
'value="form-Rr1cezki_beCddF1o_C3ncp6hFRG21GlVyhLjeZ6cjk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7406121b0c341a110317151a15151a181d160615060d5a1b0613">\n'
'<span class="__cf_email__" '
'data-cfemail="9deffbf2e5ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/adult-dungeons-and-dragons-campaign-lost-mines-phandelver-228874> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161840> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/origami-circuit-frog-grades-5-8-216475> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/junebestsellers> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chair-yoga-222235> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219096> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/dragonfly-painting-ages-3-5-199451> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-reading-kickoff-party-fun-all-ages-210078> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/drop-storytime-green-209742> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gentle-yoga-224166> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223489> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210787> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10505
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/adult-dungeons-and-dragons-campaign-lost-mines-phandelver-228874>
{'event_url': 'https://www.newcanaanlibrary.org/event/adult-dungeons-and-dragons-campaign-lost-mines-phandelver-228874',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Adult Dungeons and Dragons Campaign: The Lost Mines of '
'Phandelver</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/228874/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/228874/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'29, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>You and your party have been '
'approached by a dwarf named Gundren Rockseeker who is looking '
'for someone to escort a shipment of goods to the nearby town of '
'Phandalin. You have heard rumors of the Rockseeker brothers and '
'their recent discovery of the legendary Wave Echo Cave, a much '
'sought-after lost cavern known for its rich mineral wealth and '
'tremendous magical properties. You are thrilled at the idea of '
'earning some coin, and hopefully learning more about this '
'mysterious cavern.\xa0</p><p>In this introductory campaign, '
'players will explore subterranean labyrinths, plunder hoards of '
'treasure, and battle legendary monsters!</p><p><strong>No prior '
'experience is necessary for this adventure.</strong>\xa0We will '
'explain everything you need to know, and will walk you through '
'creating a character. However, if\xa0you want to bring your own '
'level 1 character, that is also fine (we’re playing 5E rules). '
'Registration is required.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/adult-dungeons-and-dragons-campaign-lost-mines-phandelver-228874" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-6jzbxcvjcn1d8dogqle4nlcr4yirgge-braoruula90" '
'name="form_build_id" type="hidden" '
'value="form-6jzBXcVjcN1D8DOgQlE4NlcR4YIrggE_BRAORUULa90"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d6a2bdb3af96b8b3a1b5b7b8b7b7b8babfb4a4b7a4aff8b9a4b1">\n'
'<span class="__cf_email__" '
'data-cfemail="e29689879ba28c879581838c83838c8e8b809083909bcc8d9085">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161840>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161840',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/28" '
'href="/events/week/2026/06/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/28" '
'href="/events/day/2026/06/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, June 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:36 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:36 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:36 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/origami-circuit-frog-grades-5-8-216475>
{'event_url': 'https://www.newcanaanlibrary.org/event/origami-circuit-frog-grades-5-8-216475',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Origami Circuit Frog for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216475/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216475/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Leap into summer reading with '
"this origami circuit frog projects. \xa0We'll explore circuits "
'and electricity by adding movement to our frogs with vibration '
'motors. \xa0For students in grades 5-8 in Fall '
'2026.</p><p>Registration opens May 1 at 8am.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#66050e0f0a02260803110507080707080a0f041407141f48091401"><span '
'class="__cf_email__" '
'data-cfemail="680b0001040c28060d1f0b090609090604010a1a091a1146071a0f">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/origami-circuit-frog-grades-5-8-216475" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-4dim9obss9a3qt6rxp8mgsfrlb6sgkne7ngp18tzwxq" '
'name="form_build_id" type="hidden" '
'value="form-4DIm9OBSs9a3Qt6rXP8MgsfRLB6sgknE7NGP18TzwxQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#fc9091959090998ebc92998b9f9d929d9d9290959e8e9d8e85d2938e9b">\n'
'<span class="__cf_email__" '
'data-cfemail="95f9f8fcf9f9f0e7d5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/junebestsellers>
{'event_url': 'https://www.newcanaanlibrary.org/event/junebestsellers',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Bestsellers Book Group</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/24" '
'href="/events/week/2026/06/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/24" '
'href="/events/day/2026/06/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/booktok-book-group-181013">\n'
' 01/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" href="/maybestsellers">\n'
' 05/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/junebestsellers">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5730/lc_featured_image?alternative_text=Cover%20of%20Theo%20of%20Golden"><img '
'alt="Cover of Theo of Golden" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/theo%20of%20golden.jpg" '
'width="316"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/181018/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/181018/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>This group reads and discusses '
'books of all genres that have reached bestseller status. Join '
'Reference librarians James and Kassidy to find out why these '
'books are so well-loved and determine if they live up to the '
'hype. New members are always welcome!</p><p>This month we will '
'be reading <em><strong>Theo of Golden </strong></em>by Allen '
'Levi.\xa0</p><p>You can pick up copies of the book from the hold '
'shelf.\xa0<em>Please allow time for the books to arrive, as we '
'borrow copies from other libraries.</em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/junebestsellers" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-64rsjg7cwsrhcqq7vb4xocaxbeggwmlusmayg-rx9zu" '
'name="form_build_id" type="hidden" '
'value="form-64rsJG7cwsrHcQq7Vb4xocaxbeGgWMLuSmAYG-rX9ZU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f398848a9d9d96b39d968490929d92929d9f9a918192818add9c8194">\n'
'<span class="__cf_email__" '
'data-cfemail="3358444a5d5d56735d564450525d52525d5f5a514152414a1d5c4154">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chair-yoga-222235>
{'event_url': 'https://www.newcanaanlibrary.org/event/chair-yoga-222235',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chair Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:30am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-222233">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-222234">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chair-yoga-222235">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222235/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/222235/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'29, 2026 @ 11:30am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We are pleased to continue our '
'partnership with the New Canaan YMCA to bring you Chair '
'Yoga.</p><p>With the support of a chair, this gentle Chair Yoga '
'class will help you improve postural alignment, maintain pelvic '
'mobility, reduce muscle\xa0tension and gain strength through '
'flowing movements and focused breathing.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#c1aeafada8afa4b3a4a781afa4b6a2a0afa0a0afada8a3b3a0b3b8efaeb3a6"><span '
'class="__cf_email__" '
'data-cfemail="caa5a4a6a3a4afb8afac8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/chair-yoga-222235" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-wxyqyvhf334fmfkcwwh32zr5isyvwbf-ilqbxjsnz28" '
'name="form_build_id" type="hidden" '
'value="form-wXyQyVHF334fMfKcwWh32ZR5isyVWbf_iLQbXjsnZ28"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c3b7a8a6ba83ada6b4a0a2ada2a2adafaaa1b1a2b1baedacb1a4">\n'
'<span class="__cf_email__" '
'data-cfemail="f88c939d81b8969d8f9b999699999694919a8a998a81d6978a9f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219096>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219096',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219096/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219096/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#4a292223262e0a242f3d292b242b2b24262328382b38336425382d"><span '
'class="__cf_email__" '
'data-cfemail="88ebe0e1e4ecc8e6edffebe9e6e9e9e6e4e1eafae9faf1a6e7faef">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/summer-stories-and-crafts-ages-2-and-3-years-219096" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-rkbqequyy7l76feiq4aznxbawhzwxtj9uzo3yzyu6h8" '
'name="form_build_id" type="hidden" '
'value="form-rKbQEquYY7l76feiQ4azNxBaWHZwXtj9UZO3YZyU6H8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4537232a3d052b203226242b24242b292c273724373c6b2a3722">\n'
'<span class="__cf_email__" '
'data-cfemail="d0a2b6bfa890beb5a7b3b1beb1b1bebcb9b2a2b1a2a9febfa2b7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/dragonfly-painting-ages-3-5-199451>
{'event_url': 'https://www.newcanaanlibrary.org/event/dragonfly-painting-ages-3-5-199451',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Dragonfly Painting for Ages 3-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:30pm–2:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5236/lc_featured_image?alternative_text=Assorted%20crafting%20supplies"><img '
'alt="Assorted crafting supplies" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/Crafting%20%281%29.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199451/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199451/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 3-5 years old will '
'join Miss Dajana for a short dragonfly story followed by fun '
'activity that focuses on fine motor skills. Please have your '
'child wear a smock or clothes they can get paint on.\xa0'
'</p><p><strong>This class is intended for children ages 3-5 year '
'old.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#8ae9e2e3e6eecae4effde9ebe4ebebe4e6e3e8f8ebf8f3a4e5f8ed"><span '
'class="__cf_email__" '
'data-cfemail="bcdfd4d5d0d8fcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/dragonfly-painting-ages-3-5-199451" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-7nrw-3vcpquwvcvt5-y5ms1-slgz6bzqzfvtk7uv5yi" '
'name="form_build_id" type="hidden" '
'value="form-7nrw-3vCPquWVcvt5-Y5Ms1_slGZ6bZQzfvTk7uV5yI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1470797566607d7a716e547a716377757a75757a787d766675666d3a7b6673">\n'
'<span class="__cf_email__" '
'data-cfemail="8febe2eefdfbe6e1eaf5cfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-reading-kickoff-party-fun-all-ages-210078>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-reading-kickoff-party-fun-all-ages-210078',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Reading Kickoff Party: FUN for ALL AGES</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/25" '
'href="/events/week/2026/06/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/25" '
'href="/events/day/2026/06/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, June 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:00pm–6:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210078/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210078/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210078/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Drop in and celebrate the start '
'of Summer Reading! We are celebrating RIBBIT RIBBIT READIT for a '
'fun frog summer! Join us as we play a life-sized frogger game, '
'help make GIANT frog artwork, eat some green ice cream, do a '
'scavenger hunt to earn frog tattoos, design a frog RV with '
'author Suzanne Nelson, and enjoy more crafting fun! Bring the '
'whole family to jump into Summer Reading! \xa0'
'</p><p><strong>***Only registration buttons will be available '
'during this time. All other buttons can be picked up at a '
'different time.****</strong></p><p>Make sure to sign up for '
'Summer Reading! Kids and Teens, come pick up a lanyard and book '
'prize to jump-start your Summer Reading, and make your first '
'button! Adults, come to learn about our Adult Summer Reading '
'program.\xa0</p><p>We are excited to be joined by author <a '
'href="https://www.suzannenelson.com/">Suzanne Nelson</a>, who '
'will help us kick off the summer with her road trip-themed book, '
'<em>RV There Yet? </em><a href="https://elmstreetbooks.com/">Elm '
'Street Books</a> will be onsite selling books during the '
'celebration.\xa0</p><div>\n'
'<div class="field-container"> <img alt="RV There Yet? Book '
'Cover" class="img-fluid" height="255" loading="lazy" '
'src="https://www.newcanaanlibrary.org/sites/default/files/2026-04/RV%20THERE%20YET%20final%20cover_1.jpg" '
'width="169"/>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#99faf1f0f5fdd9f7fceefaf8f7f8f8f7f5f0fbebf8ebe0b7f6ebfe"><span '
'class="__cf_email__" '
'data-cfemail="b5d6dddcd9d1f5dbd0c2d6d4dbd4d4dbd9dcd7c7d4c7cc9bdac7d2">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6c1e0a03142c02091b0f0d020d0d0200050e1e0d1e1542031e0b">\n'
'<span class="__cf_email__" '
'data-cfemail="fe8c989186be909b899d9f909f9f9092979c8c9f8c87d0918c99">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/drop-storytime-green-209742>
{'event_url': 'https://www.newcanaanlibrary.org/event/drop-storytime-green-209742',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Drop-in Storytime on the Green!</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/26" '
'href="/events/week/2026/06/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/26" '
'href="/events/day/2026/06/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 26\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson Terrace\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, June 26, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–10:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209740">\n'
' 06/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209741">\n'
' 06/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/drop-storytime-green-209742">\n'
' 06/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209743">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209744">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209742/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209742/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209742/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join our librarians outside for '
'30 minutes of fun stories, songs and movement. Bring a blanket '
'to spread out and enjoy the green space.\xa0Best for families '
'with children ages 5 and under! This storytime is drop-in, no '
'registration is needed.\xa0</p><p><strong>In case of inclement '
'weather, storytime will move inside.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#c4a7acada8a084aaa1b3a7a5aaa5a5aaa8ada6b6a5b6bdeaabb6a3"><span '
'class="__cf_email__" '
'data-cfemail="a9cac1c0c5cde9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Child\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e4a78c8d8880a48a819387858a85858a888d869685969dca8b9683">\n'
'<span class="__cf_email__" '
'data-cfemail="ffbc9796939bbf919a889c9e919e9e9193969d8d9e8d86d1908d98">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gentle-yoga-224166>
{'event_url': 'https://www.newcanaanlibrary.org/event/gentle-yoga-224166',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gentle Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/29" '
'href="/events/week/2026/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/29" '
'href="/events/day/2026/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, June 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224166/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224166/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'29, 2026 @ 10:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We have teamed up with the New '
'Canaan YMCA to create a tranquil, foundation-building class '
'designed to introduce new students to yoga, as well as offer '
'regular practitioners a gentle class to complement their yoga '
'practice. <strong>Participants must bring their own yoga mat. '
'</strong>Yoga blocks are optional. The class is designed to have '
'modified poses so everyone has the best experience.\xa0'
'</p><p><strong>About the instructor:\xa0</strong>Martha Risom '
'has been teaching gentle yoga for over decade. She continues to '
"be inspired by her students and yoga's ability to lead us toward "
'a path of physical, mental, emotional and spiritual well '
'being.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/gentle-yoga-224166" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-syd3bbkx8crritv0b-brpwl7xzjjpm05onna-hmfbi" '
'name="form_build_id" type="hidden" '
'value="form-Syd3BbKx8CRrItV0B-_BRpWL7xZjJpm05OnNA_HmfBI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#34405f514d745a514357555a55555a585d564655464d1a5b4653">\n'
'<span class="__cf_email__" '
'data-cfemail="85f1eee0fcc5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' YMCA of New Canaan \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223489>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223489',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/27" '
'href="/events/week/2026/06/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/27" '
'href="/events/day/2026/06/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, June 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223489/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223489/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223489/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#97f8f9fbfef9f2e5f2f1d7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0"><span '
'class="__cf_email__" '
'data-cfemail="94fbfaf8fdfaf1e6f1f2d4faf1e3f7f5faf5f5faf8fdf6e6f5e6edbafbe6f3">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#422a212b2f2b2c2d022c273521232c23232c2e2b203023303b6c2d3025">\n'
'<span class="__cf_email__" '
'data-cfemail="4d252e24202423220d23283a2e2c232c2c2321242f3f2c3f3463223f2a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210787>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210787',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/25" '
'href="/events/week/2026/06/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/25" '
'href="/events/day/2026/06/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, June 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210787/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210787/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#44272c2d2820042a213327252a25252a282d263625363d6a2b3623"><span '
'class="__cf_email__" '
'data-cfemail="187b7071747c58767d6f7b797679797674717a6a796a6136776a7f">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210787" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-qfn0akfe1ammqplalxdz2-cjakpl0yagx-zsdltw6c8" '
'name="form_build_id" type="hidden" '
'value="form-QFn0AKfE1AMmQpLalXDz2_CjaKPL0Yagx-ZsdLtw6c8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#51353c302325383f342b113f342632303f30303f3d3833233023287f3e2336">\n'
'<span class="__cf_email__" '
'data-cfemail="284c45495a5c41464d5268464d5f4b494649494644414a5a495a5106475a4f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-pollinator-pathway-film-219732> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219756> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/adult-summer-reading> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219779> (referer: https://www.newcanaanlibrary.org/events/list?page=1)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224493> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/microsoft-word-basics-224779> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219781> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198498> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219758> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210789> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=3> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-pollinator-pathway-film-219732>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-pollinator-pathway-film-219732',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Pollinator Pathway Film Screening: "The Extraordinary '
'Caterpillar"</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/24" '
'href="/events/week/2026/06/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/24" '
'href="/events/day/2026/06/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:15pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5722/lc_featured_image?alternative_text=Bright%20green%20caterpillar%20photographed%20against%20black%20background"><img '
'alt="Bright green caterpillar photographed against black '
'background" class="img-fluid" height="300" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Extraordinary%20Caterpillar%20%20%281%29.png" '
'width="400"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219732/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219732/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'22, 2026 @ 1:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Peek into the world of nature’s '
'tiniest superheroes in <em>The Extraordinary Caterpillar</em>, a '
'beautifully shot 60-minute documentary that reveals the '
'vital—and often overlooked—role caterpillars play in our '
'ecosystems.</p><p>From blooming meadows to city parks and '
'backyard gardens, this inspiring film celebrates the magic of '
'nature while showing families practical ways to make a '
'difference. Along the way, you’ll see the groundbreaking work of '
'The Caterpillar Lab, entomologist David Wagner, and Doug '
'Tallamy, co-founder of Homegrown National Park. This program is '
'co-sponsored by the New Canaan Pollinator Pathway partners: The '
'Glass House, Grace Farms, New Canaan Beautification League, New '
'Canaan Department of Public Works/Parks Department, New Canaan '
'Garden Club, New Canaan Land Trust, New Canaan Library, New '
'Canaan Nature Center, Norwalk River Watershed Association, '
'Planet New Canaan, Waveny Park Conservancy.\xa0</p><p>Watch the '
'trailer here!\xa0<a '
'href="https://homegrownnationalpark.us2.list-manage.com/track/click?u=ce919e78833f25cf86f5047ac&id=2f48aaa710&e=92daef9d14&i=2f985742ca" '
'target="_blank">https://vimeo.com/1117213704</a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-pollinator-pathway-film-219732" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-mudn1ucyjh5pyktfx2wi9spbco0sm6h3jerji1fwv6s" '
'name="form_build_id" type="hidden" '
'value="form-mUDN1UCyjH5PyktfX2Wi9SPbcO0sM6H3jErJi1FwV6s"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d8b5a8b7aaacb998b6bdafbbb9b6b9b9b6b4b1baaab9aaa1f6b7aabf">\n'
'<span class="__cf_email__" '
'data-cfemail="dcb1acb3aea8bd9cb2b9abbfbdb2bdbdb2b0b5beaebdaea5f2b3aebb">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:37 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:37 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219756>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219756',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/24" '
'href="/events/week/2026/06/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/24" '
'href="/events/day/2026/06/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219756/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219756/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#c7a4afaeaba387a9a2b0a4a6a9a6a6a9abaea5b5a6b5bee9a8b5a0"><span '
'class="__cf_email__" '
'data-cfemail="e5868d8c8981a58b809286848b84848b898c879784979ccb8a9782">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219756" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-cx-gah9oqhjzddxj6jbj0nbt036m2xau2dcq4qi4ga" '
'name="form_build_id" type="hidden" '
'value="form-_Cx-GAH9oQhjZdDxj6JBJ0nbT036m2XaU2dcq4QI4GA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9eecf8f1e6def0fbe9fdfff0fffff0f2f7fcecffece7b0f1ecf9">\n'
'<span class="__cf_email__" '
'data-cfemail="d4a6b2bbac94bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/adult-summer-reading>
{'event_url': 'https://www.newcanaanlibrary.org/event/adult-summer-reading',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Reading Book Buzz for Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/23" '
'href="/events/week/2026/06/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/23" '
'href="/events/day/2026/06/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5733/lc_featured_image?alternative_text=New%20Canaan%20Library%20Summer%20Reading"><img '
'alt="New Canaan Library Summer Reading" class="img-fluid" '
'height="182" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Screenshot%202026-04-07%20151906.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214327/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214327/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'23, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join our Adult Librarians (Anna, '
'Flannery, Kassidy, James & Tara) as they showcase the '
'upcoming, must read books of the Summer.</p><p>After discovering '
'your next favorite read, you can officially register for our '
'Adult Summer Reading Challenge, learn how to enter into a '
'drawing for a chance to win cool prizes, and walk away with your '
'exclusive 2026 sign-up gift (while supplies last).</p><p>The '
'evening will end with a reception sponsored by '
'<em>Wegmans</em>.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/adult-summer-reading" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ov1szy9o0qhmtrxfy7gir-ev7kzxwnz3cxmcihinzsm" '
'name="form_build_id" type="hidden" '
'value="form-ov1SzY9O0qhMTRXFy7gIr-EV7kzXwNZ3cxmcIHiNzsM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a4cfd3ddcacac1e4cac1d3c7c5cac5c5cac8cdc6d6c5d6dd8acbd6c3">\n'
'<span class="__cf_email__" '
'data-cfemail="b3d8c4caddddd6f3ddd6c4d0d2ddd2d2dddfdad1c1d2c1ca9ddcc1d4">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219779>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219779',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/06" '
'href="/events/month/2026/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/06/24" '
'href="/events/week/2026/06/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/06/24" '
'href="/events/day/2026/06/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, June 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219779/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219779/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on June '
'24, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#dfbcb7b6b3bb9fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8"><span '
'class="__cf_email__" '
'data-cfemail="4e2d2627222a0e202b392d2f202f2f2022272c3c2f3c3760213c29">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219779" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-o9ccql-d4asfv7eadwybup3nq09yjyyel67m-f29fdg" '
'name="form_build_id" type="hidden" '
'value="form-o9CCqL-D4ASfV7EadwyBuP3NQ09YJyyEl67m-F29Fdg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#067460697e466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="e597838a9da58b809286848b84848b898c879784979ccb8a9782">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224493>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224493',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Embroidery for Intermediate Sewers</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-embroidery-intermediate-sewers-224493">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224494">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224495">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224496">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5797/lc_featured_image?alternative_text=Two%20embroidered%20blue%20hummingbirds%20face%20each%20other.%20There%20is%20delicate%20filigree%20surrounding%20them."><img '
'alt="Two embroidered blue hummingbirds face each other. There is '
'delicate filigree surrounding them." class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/framed%20embroidery_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224493/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224493/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 1:00pm.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this series, sewers will use '
'a number of familiar stitch and knot techniques to create a '
'beautiful piece of art. In the final session, you will learn a '
'basic DIY framing technique. <em><strong>You must bring your own '
'5x7 frame.</strong></em> Each participant will take home a '
'lovely piece of art and a new set of skills.\xa0'
'</p><p><strong>Please only sign up if you can attend all '
'sessions. Due to the nature of the class, your project will not '
'be completed in one day.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#0669686a6f6863746360466863716567686767686a6f647467747f28697461"><span '
'class="__cf_email__" '
'data-cfemail="4b24252722252e392e2d0b252e3c282a252a2a25272229392a39326524392c">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-embroidery-intermediate-sewers-224493" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-7zlcf86etgwudf7yv-6hd8jdakinn-6i7h6w61xd74s" '
'name="form_build_id" type="hidden" '
'value="form-7Zlcf86eTgWUdf7YV-6HD8jDaKinn-6I7h6w61xD74s"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#99f8faf5f8ebf2d9f7fceefaf8f7f8f8f7f5f0fbebf8ebe0b7f6ebfe">\n'
'<span class="__cf_email__" '
'data-cfemail="a7c6c4cbc6d5cce7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/microsoft-word-basics-224779>
{'event_url': 'https://www.newcanaanlibrary.org/event/microsoft-word-basics-224779',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Microsoft Word Basics</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/08" '
'href="/events/week/2026/07/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/08" '
'href="/events/day/2026/07/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–3:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224779/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224779/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'8, 2026 @ 2:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>If you are new to Microsoft Word '
'or want to learn about the latest version of Word, this class is '
'for you! Learn the basics of navigating the Office 365 version '
'of Word, from creating a new document to formatting fonts, '
'adjusting paragraphs, changing margins, and saving and printing '
'your files.</p><p><strong>This class is designed for brand-new '
'users of Word.\xa0</strong>\xa0\xa0\xa0</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/microsoft-word-basics-224779" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-phqcgzrcumws7cxwkdcxhpj468fxdklunq2cbn7wlp4" '
'name="form_build_id" type="hidden" '
'value="form-PhQcGZRcuMWS7cXWkDCXHpJ468FxDKlUNQ2cbN7WLP4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#80e1e3ece1f2ebc0eee5f7e3e1eee1e1eeece9e2f2e1f2f9aeeff2e7">\n'
'<span class="__cf_email__" '
'data-cfemail="a4c5c7c8c5d6cfe4cac1d3c7c5cac5c5cac8cdc6d6c5d6dd8acbd6c3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219781>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219781',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/08" '
'href="/events/week/2026/07/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/08" '
'href="/events/day/2026/07/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219781/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219781/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'8, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ddbeb5b4b1b99db3b8aabebcb3bcbcb3b1b4bfafbcafa4f3b2afba"><span '
'class="__cf_email__" '
'data-cfemail="86e5eeefeae2c6e8e3f1e5e7e8e7e7e8eaefe4f4e7f4ffa8e9f4e1">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219781" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-optr7hhluek6nfyx8l3bt7fwc5lqv3rn6rto0hvslle" '
'name="form_build_id" type="hidden" '
'value="form-oPtr7HHlUEk6NFYX8l3Bt7FWc5LQv3RN6RTo0hvsLlE"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e193878e99a18f849682808f80808f8d888393809398cf8e9386">\n'
'<span class="__cf_email__" '
'data-cfemail="1361757c6b537d766470727d72727d7f7a716172616a3d7c6174">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198498>
{'event_url': 'https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198498',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Scavenger Hunt Mini Camp for Grades 4-7</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/08" '
'href="/events/week/2026/07/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/08" '
'href="/events/day/2026/07/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198496">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198497">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198498">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198498/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198498/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198496">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 7th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this 3-day mini camp, '
'students will get a hands-on introduction to letterboxing. \xa0'
'Letterboxing combines hand carved stamps with scavenger hunts in '
'parks, forests and urban environments. \xa0During this 3-day '
'camp, we will design and carve stamps celebrating our favorite '
'books, hide them on the library grounds and write clues to their '
'hiding spots. \xa0On our last day, we will follow clues to find '
'our hides and use an ink pad to stamp them into our logbooks. '
'The stamp you carve and hide will stay at the library through '
'September 30 and the clues we write will be shared on '
'letterboxing websites under trailnames for others to find. \xa0'
'Your logbook will go home with you to continue you on your '
'letterboxing journey. \xa0</p><p>Day 1: Introduction to '
'Letterboxing</p><p>Day 2: Creating Our Hides\xa0</p><p>Day 3: '
'Creating Logbook and Treasure Hunt</p><p>This class will take '
'place in both the MakerLab and library grounds. \xa0For students '
'in grades 4-7 in Fall 2026.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#395a5150555d79575c4e5a585758585755505b4b584b4017564b5e"><span '
'class="__cf_email__" '
'data-cfemail="07646f6e6b63476962706466696666696b6e657566757e29687560">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#620e0f0b0e0e0710220c071501030c03030c0e0b001003101b4c0d1005">\n'
'<span class="__cf_email__" '
'data-cfemail="a9c5c4c0c5c5ccdbe9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219758>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219758',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/08" '
'href="/events/week/2026/07/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/08" '
'href="/events/day/2026/07/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219758/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219758/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'8, 2026 @ 9:15am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#37545f5e5b53775952405456595656595b5e554556454e19584550"><span '
'class="__cf_email__" '
'data-cfemail="395a5150555d79575c4e5a585758585755505b4b584b4017564b5e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219758" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ciirj7kmre1jrcrao9agq9kaupem9kvrwzdo3oipqbu" '
'name="form_build_id" type="hidden" '
'value="form-cIirj7KMrE1jRCRao9AGq9KAupEm9KvRWzDo3OIpqbU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b1c3d7dec9f1dfd4c6d2d0dfd0d0dfddd8d3c3d0c3c89fdec3d6">\n'
'<span class="__cf_email__" '
'data-cfemail="e89a8e8790a8868d9f8b898689898684818a9a899a91c6879a8f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210789>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210789',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210789/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210789/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 9:30am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#33505b5a5f57735d564450525d52525d5f5a514152414a1d5c4154"><span '
'class="__cf_email__" '
'data-cfemail="e98a8180858da9878c9e8a888788888785808b9b889b90c7869b8e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210789" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-bq5ebjqasbwp11-8-xzqdno1f-elr5f3cwhtvuyjk7k" '
'name="form_build_id" type="hidden" '
'value="form-bQ5eBjqASbwP11_8-XZQDno1f_ELr5F3cwhTVUyJK7k"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5d39303c2f29343338271d33382a3e3c333c3c3331343f2f3c2f2473322f3a">\n'
'<span class="__cf_email__" '
'data-cfemail="086c65697a7c61666d7248666d7f6b696669696664616a7a697a7126677a6f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217930> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/learn-how-use-cricut-machine-adults-226293> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198496> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219097> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gentle-yoga-185017> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198497> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chair-yoga-180341> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180883> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226717> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221987> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:38 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217930>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217930',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217930/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217930/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#77141f1e1b13371912001416191616191b1e150516050e59180510"><span '
'class="__cf_email__" '
'data-cfemail="f99a9190959db9979c8e9a989798989795909b8b988b80d7968b9e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3-5s-storytime-217930" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-lmajpmkknmexgyq-hso5lmjcdsaeypm3po8b8ztdkqa" '
'name="form_build_id" type="hidden" '
'value="form-lmAJPMKkNMEXgyQ-hsO5lMjcDsaEypm3Po8b8ZtDKQA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7d19101c0f09141318073d13180a1e1c131c1c1311141f0f1c0f0453120f1a">\n'
'<span class="__cf_email__" '
'data-cfemail="4e2a232f3c3a27202b340e202b392d2f202f2f2022272c3c2f3c3760213c29">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 11069
2026-06-16 04:20:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/learn-how-use-cricut-machine-adults-226293>
{'event_url': 'https://www.newcanaanlibrary.org/event/learn-how-use-cricut-machine-adults-226293',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Learn How to Use the Cricut Machine for Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/08" '
'href="/events/week/2026/07/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/08" '
'href="/events/day/2026/07/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/2887/lc_featured_image?alternative_text=Cricut%20logo"><img '
'alt="Cricut logo" class="img-fluid" height="117" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-05/cricut.png" '
'width="432"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226293/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226293/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Want to learn how to use the '
'Cricut but are not sure where to start? Join for an introduction '
'to the Cricut Maker- a machine that can cut and draw on a '
'wide-range of materials.\xa0In this introductory class, '
'participants will be able to create their very own bookmark with '
'the Cricut.\xa0</p><p>Participants are encouraged to make a free '
'Cricut account and bring their login information to class. You '
'can sign up for an account\xa0<a '
'href="https://cricut.com/en_us/customer/account/create/">here</a>.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/learn-how-use-cricut-machine-adults-226293" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-fcjbxlodnnp0qdjfcxazzbycyeimktxpfppyjos70ha" '
'name="form_build_id" type="hidden" '
'value="form-FCjbXloDNNp0qDjfCXazzbyCyeIMKTxPFpPyjOS70hA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#09627e7067676c49676c7e6a686768686765606b7b687b7027667b6e">\n'
'<span class="__cf_email__" '
'data-cfemail="ee85999780808bae808b998d8f808f8f8082878c9c8f9c97c0819c89">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:38 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198496>
{'event_url': 'https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198496',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Scavenger Hunt Mini Camp for Grades 4-7</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/06" '
'href="/events/week/2026/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/06" '
'href="/events/day/2026/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198496">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198497">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198498">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198496/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198496/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 7th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this 3-day mini camp, '
'students will get a hands-on introduction to letterboxing. \xa0'
'Letterboxing combines hand carved stamps with scavenger hunts in '
'parks, forests and urban environments. \xa0During this 3-day '
'camp, we will design and carve stamps celebrating our favorite '
'books, hide them on the library grounds and write clues to their '
'hiding spots. \xa0On our last day, we will follow clues to find '
'our hides and use an ink pad to stamp them into our logbooks. '
'The stamp you carve and hide will stay at the library through '
'September 30 and the clues we write will be shared on '
'letterboxing websites under trailnames for others to find. \xa0'
'Your logbook will go home with you to continue you on your '
'letterboxing journey. \xa0</p><p>Day 1: Introduction to '
'Letterboxing</p><p>Day 2: Creating Our Hides\xa0</p><p>Day 3: '
'Creating Logbook and Treasure Hunt</p><p>This class will take '
'place in both the MakerLab and library grounds. \xa0For students '
'in grades 4-7 in Fall 2026.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#791a1110151d39171c0e1a181718181715101b0b180b0057160b1e"><span '
'class="__cf_email__" '
'data-cfemail="9dfef5f4f1f9ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/explore-letterboxing-mini-camp-grades-4-7-198496" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-tvnbspizhfidyxs8nx-slqcyy9qy0pn6ae7eydwrjdk" '
'name="form_build_id" type="hidden" '
'value="form-TVNbSPiZhFIdyxs8Nx-SlQcyy9qy0Pn6aE7eYDWrJDk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#177b7a7e7b7b7265577972607476797676797b7e756576656e39786570">\n'
'<span class="__cf_email__" '
'data-cfemail="84e8e9ede8e8e1f6c4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219097>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219097',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/06" '
'href="/events/week/2026/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/06" '
'href="/events/day/2026/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219097/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219097/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#600308090c04200e051703010e01010e0c0902120112194e0f1207"><span '
'class="__cf_email__" '
'data-cfemail="9cfff4f5f0f8dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/summer-stories-and-crafts-ages-2-and-3-years-219097" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-bs9xkyfkmffcubn4cwxknbxlfvtcnsqnjn7gppvdf0m" '
'name="form_build_id" type="hidden" '
'value="form-BS9XKYFkMFFcuBn4CwxknBXlfvTCnsQNjN7GPPvDf0M"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d3a1b5bcab93bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">\n'
'<span class="__cf_email__" '
'data-cfemail="a1d3c7ced9e1cfc4d6c2c0cfc0c0cfcdc8c3d3c0d3d88fced3c6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gentle-yoga-185017>
{'event_url': 'https://www.newcanaanlibrary.org/event/gentle-yoga-185017',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gentle Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/06" '
'href="/events/week/2026/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/06" '
'href="/events/day/2026/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185014">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/gentle-yoga-185017">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185019">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185020">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185017/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185017/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'6, 2026 @ 10:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We have teamed up with the New '
'Canaan YMCA to create a tranquil, foundation-building class '
'designed to introduce new students to yoga, as well as offer '
'regular practitioners a gentle class to complement their yoga '
'practice. <strong>Participants must bring their own yoga mat. '
'</strong>Yoga blocks are optional. The class is designed to have '
'modified poses so everyone has the best experience.\xa0'
'</p><p><strong>About the instructor:\xa0</strong>Martha Risom '
'has been teaching gentle yoga for over decade. She continues to '
"be inspired by her students and yoga's ability to lead us toward "
'a path of physical, mental, emotional and spiritual well '
'being.\xa0</p><p><br/>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/gentle-yoga-185017" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-hptyrrcdtvzpzpdtk2po1nsi7tfwbrw-guvt62naup8" '
'name="form_build_id" type="hidden" '
'value="form-hPtyRrcDTvZpZPDTK2Po1nsI7TFwbrw-guVT62naUp8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4c382729350c22293b2f2d222d2d2220252e3e2d3e3562233e2b">\n'
'<span class="__cf_email__" '
'data-cfemail="1d697678645d73786a7e7c737c7c7371747f6f7c6f6433726f7a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' YMCA of New Canaan \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198497>
{'event_url': 'https://www.newcanaanlibrary.org/event/explore-letterboxing-mini-camp-grades-4-7-198497',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Scavenger Hunt Mini Camp for Grades 4-7</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/07" '
'href="/events/week/2026/07/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/07" '
'href="/events/day/2026/07/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198496">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198497">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198498">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198497/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198497/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/explore-letterboxing-mini-camp-grades-4-7-198496">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 7th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this 3-day mini camp, '
'students will get a hands-on introduction to letterboxing. \xa0'
'Letterboxing combines hand carved stamps with scavenger hunts in '
'parks, forests and urban environments. \xa0During this 3-day '
'camp, we will design and carve stamps celebrating our favorite '
'books, hide them on the library grounds and write clues to their '
'hiding spots. \xa0On our last day, we will follow clues to find '
'our hides and use an ink pad to stamp them into our logbooks. '
'The stamp you carve and hide will stay at the library through '
'September 30 and the clues we write will be shared on '
'letterboxing websites under trailnames for others to find. \xa0'
'Your logbook will go home with you to continue you on your '
'letterboxing journey. \xa0</p><p>Day 1: Introduction to '
'Letterboxing</p><p>Day 2: Creating Our Hides\xa0</p><p>Day 3: '
'Creating Logbook and Treasure Hunt</p><p>This class will take '
'place in both the MakerLab and library grounds. \xa0For students '
'in grades 4-7 in Fall 2026.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#03606b6a6f67436d667460626d62626d6f6a617162717a2d6c7164"><span '
'class="__cf_email__" '
'data-cfemail="14777c7d7870547a716377757a75757a787d766675666d3a7b6673">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a5c9c8ccc9c9c0d7e5cbc0d2c6c4cbc4c4cbc9ccc7d7c4d7dc8bcad7c2">\n'
'<span class="__cf_email__" '
'data-cfemail="97fbfafefbfbf2e5d7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chair-yoga-180341>
{'event_url': 'https://www.newcanaanlibrary.org/event/chair-yoga-180341',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chair Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/06" '
'href="/events/week/2026/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/06" '
'href="/events/day/2026/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:30am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180318">\n'
' 01/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180319">\n'
' 01/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180325">\n'
' 03/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180326">\n'
' 03/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180327">\n'
' 03/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180328">\n'
' 03/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180329">\n'
' 04/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180331">\n'
' 04/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180332">\n'
' 04/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180333">\n'
' 05/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180334">\n'
' 05/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180335">\n'
' 05/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180336">\n'
' 06/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chair-yoga-180341">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180343">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180344">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180341/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180341/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'6, 2026 @ 11:30am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We are pleased to continue our '
'partnership with the New Canaan YMCA to bring you Chair '
'Yoga.</p><p>With the support of a chair, this gentle Chair Yoga '
'class will help you improve postural alignment, maintain pelvic '
'mobility, reduce muscle\xa0tension and gain strength through '
'flowing movements and focused breathing.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#1778797b7e7972657271577972607476797676797b7e756576656e39786570"><span '
'class="__cf_email__" '
'data-cfemail="86e9e8eaefe8e3f4e3e0c6e8e3f1e5e7e8e7e7e8eaefe4f4e7f4ffa8e9f4e1">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/chair-yoga-180341" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-nyalzncsyvsxjoatj8a9tg9zfb84bplolmjpizk8tfe" '
'name="form_build_id" type="hidden" '
'value="form-NyALZNcsYVsXJoatJ8A9TG9ZFB84bplolmjPIZK8TFE"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#dfabb4baa69fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">\n'
'<span class="__cf_email__" '
'data-cfemail="99edf2fce0d9f7fceefaf8f7f8f8f7f5f0fbebf8ebe0b7f6ebfe">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180883>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180883',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/07" '
'href="/events/week/2026/07/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/07" '
'href="/events/day/2026/07/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180883/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180883/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180883/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0669686a6f6863746360466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="6609080a0f0803140300260803110507080707080a0f041407141f48091401">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226717>
{'event_url': 'https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226717',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Introduction to Watercolor Painting: 3 session '
'series</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/07" '
'href="/events/week/2026/07/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/07" '
'href="/events/day/2026/07/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–12:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/introduction-watercolor-painting-3-session-series-226717">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226718">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226719">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5190/lc_featured_image?alternative_text=image%20of%20watercolor%20brushes%20and%20paint%20"><img '
'alt="image of watercolor brushes and paint " class="img-fluid" '
'height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/240_F_358142390_ef2xlLgAHBkKQ9lR3smfYvRPvSzpVwO0.jpg" '
'width="435"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226717/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226717/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>Please note this course '
'is for NEW STUDENTS who did not take the February or APRIL 2026 '
'class.\xa0</strong></p><p>In this three-session workshop series, '
'participants will explore the fundamentals of watercolor '
'painting in a supportive, beginner environment. The class will '
'cover basic color mixing and blending techniques, expressive '
'mark-making, and an introduction to the unique qualities of '
'watercolor as a medium.</p><p>Individual feedback will be '
'provided throughout each session, with opportunities for group '
'discussion and shared learning. All materials are '
'supplied.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/introduction-watercolor-painting-3-session-series-226717" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-coa3cyouybshpacfag28qepxuhj-mb9gfc9juw-p4bi" '
'name="form_build_id" type="hidden" '
'value="form-COa3CYoUyBShPaCFAg28qEpXuHJ-mB9gFc9jUW_p4BI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e0948b8599a08e859783818e81818e8c898292819299ce8f9287">\n'
'<span class="__cf_email__" '
'data-cfemail="a5d1cec0dce5cbc0d2c6c4cbc4c4cbc9ccc7d7c4d7dc8bcad7c2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Evelyn Harvey \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221987>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221987',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/07" '
'href="/events/week/2026/07/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/07" '
'href="/events/day/2026/07/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221987/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221987/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'7, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#83ecedefeaede6f1e6e5c3ede6f4e0e2ede2e2edefeae1f1e2f1faadecf1e4"><span '
'class="__cf_email__" '
'data-cfemail="5837363431363d2a3d3e18363d2f3b393639393634313a2a392a2176372a3f">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221987" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-uv6mwatxa0aqjy5paudu6iyuqdqvwq305khxtngcul4" '
'name="form_build_id" type="hidden" '
'value="form-UV6MWatxa0aQJy5paUDU6IyUQDqvwq305KhXTnGcul4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#98ecf3fde1d8f6fdeffbf9f6f9f9f6f4f1faeaf9eae1b6f7eaff">\n'
'<span class="__cf_email__" '
'data-cfemail="85f1eee0fcc5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168841> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-independence-day-161852> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161841> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203856> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171757> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180884> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closes-5pm-independence-day-observed-221601> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=4> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219759> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217707> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217929> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226718> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168841>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168841',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/07" '
'href="/events/week/2026/07/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/07" '
'href="/events/day/2026/07/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168841/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168841/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168841/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#e98a8180858da9878c9e8a888788888785808b9b889b90c7869b8e"><span '
'class="__cf_email__" '
'data-cfemail="b8dbd0d1d4dcf8d6ddcfdbd9d6d9d9d6d4d1dacad9cac196d7cadf">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3b495d54437b555e4c585a555a5a55575259495a49421554495c">\n'
'<span class="__cf_email__" '
'data-cfemail="780a1e170038161d0f1b191619191614111a0a190a0156170a1f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:39 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:39 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-independence-day-161852>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-independence-day-161852',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Independence Day</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/03" '
'href="/events/week/2026/07/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/03" '
'href="/events/day/2026/07/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day '
'lc-date-icon__item--multi-day">\n'
' 3 <div>-</div> 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Friday, July 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' 7/3–7/4\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'<div class="field-container"><p>The Library will close early at '
'5PM on Thursday, July 2nd, and will be closed all day Friday, '
'July 3rd through Sunday, July 5th. \xa0Happy Independence '
'Day!</p></div>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:39 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161841>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161841',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/05" '
'href="/events/week/2026/07/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/05" '
'href="/events/day/2026/07/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, July 5, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203856>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203856',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup for Families</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/06" '
'href="/events/week/2026/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/06" '
'href="/events/day/2026/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203856/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203856/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'6, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#fa999293969eba949f8d999b949b9b94969398889b8883d495889d"><span '
'class="__cf_email__" '
'data-cfemail="412229282d25012f243622202f20202f2d2823332033386f2e3326">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/chess-meetup-grades-k-5-203856" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-lrmoblaq-ohek2nnqhsbxbkklic0mq5outq-wbvbttu" '
'name="form_build_id" type="hidden" '
'value="form-lRmoBLaq-ohEK2nNQHSBxbkklIC0mQ5outQ-wBVbtTU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d5b6bdbcb9b195bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">\n'
'<span class="__cf_email__" '
'data-cfemail="c0a3a8a9aca480aea5b7a3a1aea1a1aeaca9a2b2a1b2b9eeafb2a7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171757>
{'event_url': 'https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171757',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The Reptile Nook Presents Animal Talk</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5558/lc_featured_image?alternative_text=Frog"><img '
'alt="Frog" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-03/1e7d65_9b70cf6eff3f4968b6396482a47dfb40~mv2.jpeg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/171757/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/171757/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'14, 2026 @ 3:30pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join <a '
'href="https://www.thereptilenook.com/">The Reptile Nook</a> for '
'a meet and learn about 4 different animal species. We will be '
'meeting a lizard, snake, tortoise, and amphibian! This Animal '
'Talk program allows kids to meet the animals up close and dive '
'into learning about a variety of reptile, amphibian, and/or '
'invertebrate species.</p><p><strong>Best for families with '
'children 3 years old and up! </strong>Please register everyone '
'who is attending<strong> (Grown-ups and Kids). PLEASE ONLY '
'REGISTER FOR EITHER THE 3:30PM or 5:00PM session as they will be '
'a repeat of the program.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#214249484d45614f445642404f40404f4d4843534053580f4e5346"><span '
'class="__cf_email__" '
'data-cfemail="abc8c3c2c7cfebc5cedcc8cac5cacac5c7c2c9d9cad9d285c4d9cc">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/reptile-nook-frog-summer-hold-171757" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-d49ohsejgcwtjliqbz8m2klcs6wor2lyqfmky7iqdcg" '
'name="form_build_id" type="hidden" '
'value="form-d49OhSeJGcwtjLiQBz8m2KLcS6WoR2lyqfmKY7iqDCg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a7d5c1c8dfe7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">\n'
'<span class="__cf_email__" '
'data-cfemail="d1a3b7bea991bfb4a6b2b0bfb0b0bfbdb8b3a3b0a3a8ffbea3b6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180884>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180884',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180884/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180884/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180884/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f798999b9e9992859291b79992809496999696999b9e958596858ed9988590">\n'
'<span class="__cf_email__" '
'data-cfemail="b9d6d7d5d0d7dccbdcdff9d7dccedad8d7d8d8d7d5d0dbcbd8cbc097d6cbde">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closes-5pm-independence-day-observed-221601>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closes-5pm-independence-day-observed-221601',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closes at 5PM: Independence Day (observed)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/02" '
'href="/events/week/2026/07/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/02" '
'href="/events/day/2026/07/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Thursday, July 2, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'<div class="field-container"><p>The Library will close early at '
'5PM on Thursday, July 2nd, and will be closed all day Friday, '
'July 3rd through Sunday, July 5th. \xa0Happy Independence '
'Day!</p></div>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219759>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219759',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219759/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219759/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 9:15am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#395a5150555d79575c4e5a585758585755505b4b584b4017564b5e"><span '
'class="__cf_email__" '
'data-cfemail="9ffcf7f6f3fbdff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219759" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-u9vdo-eot4lm1czs335ugjfbe4x9ikopoxxtbpamino" '
'name="form_build_id" type="hidden" '
'value="form-u9VdO-eOT4lM1czS335ugJFBe4x9IkopoxxtBpAmIno"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2e5c4841566e404b594d4f404f4f4042474c5c4f5c5700415c49">\n'
'<span class="__cf_email__" '
'data-cfemail="790b1f160139171c0e1a181718181715101b0b180b0057160b1e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217707>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217707',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Dungeons & Dragons - Raiders on the Red Water: Oneshot '
'for ages 12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room\n"
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–7:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5669/lc_featured_image?alternative_text=digital%20illustration%20of%20small%20ships%20in%20a%20wirlpool%20that%20is%20shaped%20like%20a%20skull"><img '
'alt="digital illustration of small ships in a wirlpool that is '
'shaped like a skull" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20115548.png" '
'width="390"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217707/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217707/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'14, 2026 @ 3:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Facing\xa0despicable sea raiders '
'and their newfound powers,\xa0will your party triumph over the '
'kidnappers or will they too find their end at the bottom of a '
'watery grave?</p><p>Newcomers to D&D are welcome, we provide '
'a characters sheet as well as dice and minis! We will take a '
'break for a snack between 5:15 and 5:45. Pre-registration is '
'required.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217707" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-cpjhbt0muf8ze8bsbazek6s-v3zbfvoibtemrvurukm" '
'name="form_build_id" type="hidden" '
'value="form-CPjhbt0MUf8zE8bSbazek6s_V3ZbFvoIbtEMRVUrukM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cea3a6bbbabaa18ea0abb9adafa0afafa0a2a7acbcafbcb7e0a1bca9">\n'
'<span class="__cf_email__" '
'data-cfemail="82efeaf7f6f6edc2ece7f5e1e3ece3e3eceeebe0f0e3f0fbacedf0e5">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:40 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:40 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217929>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217929',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/02" '
'href="/events/week/2026/07/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/02" '
'href="/events/day/2026/07/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 2, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217929/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217929/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#8deee5e4e1e9cde3e8faeeece3ecece3e1e4efffecfff4a3e2ffea"><span '
'class="__cf_email__" '
'data-cfemail="711219181d15311f140612101f10101f1d1813031003085f1e0316">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3-5s-storytime-217929" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-hazotrjbdhtuo7yhvdqvcimpae8jq0rtnvs3jkw1vfg" '
'name="form_build_id" type="hidden" '
'value="form-HaZotrjbdHtuO7yHvDqvcIMpaE8jq0rTnvS3jKW1vFg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f99d94988b8d90979c83b9979c8e9a989798989795909b8b988b80d7968b9e">\n'
'<span class="__cf_email__" '
'data-cfemail="95f1f8f4e7e1fcfbf0efd5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:40 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226718>
{'event_url': 'https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226718',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Introduction to Watercolor Painting: 3 session '
'series</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–12:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226717">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/introduction-watercolor-painting-3-session-series-226718">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226719">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5190/lc_featured_image?alternative_text=image%20of%20watercolor%20brushes%20and%20paint%20"><img '
'alt="image of watercolor brushes and paint " class="img-fluid" '
'height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/240_F_358142390_ef2xlLgAHBkKQ9lR3smfYvRPvSzpVwO0.jpg" '
'width="435"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226718/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226718/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/introduction-watercolor-painting-3-session-series-226717">first '
'event</a> to register.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>Please note this course '
'is for NEW STUDENTS who did not take the February or APRIL 2026 '
'class.\xa0</strong></p><p>In this three-session workshop series, '
'participants will explore the fundamentals of watercolor '
'painting in a supportive, beginner environment. The class will '
'cover basic color mixing and blending techniques, expressive '
'mark-making, and an introduction to the unique qualities of '
'watercolor as a medium.</p><p>Individual feedback will be '
'provided throughout each session, with opportunities for group '
'discussion and shared learning. All materials are '
'supplied.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#84f0efe1fdc4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3">\n'
'<span class="__cf_email__" '
'data-cfemail="7f0b141a063f111a081c1e111e1e1113161d0d1e0d0651100d18">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Evelyn Harvey \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-5-8-217329> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171946> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161842> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219098> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203857> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168842> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/audience-registration-new-canaans-got-talent-216570> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-5-8-217329>
{'event_url': 'https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-5-8-217329',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Pop-Up Books: Bog Life for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/13" '
'href="/events/week/2026/07/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/13" '
'href="/events/day/2026/07/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217329/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217329/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'13, 2026 @ 3:30pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn pop-up book mechanics and '
'paper engineering concepts at this pop-up book making class. \xa0'
'Our book will be bog life theme in keeping with our summer '
"reading. \xa0We will assemble our books and you'll have the "
'opportunity to customize your book pages as we build. For '
'students in grades 5-8 in Fall 2026.</p><p><em>Registration '
'opens June 1 at 8am.</em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/pop-books-bog-life-grades-5-8-217329" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-0si6gdwjnk9zdwoycn1kbektufcvx9334fm7r5yhzes" '
'name="form_build_id" type="hidden" '
'value="form-0Si6gDWJNk9zdwOYcn1KbEKtufCVX9334fm7r5YHzes"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9af6f7f3f6f6ffe8daf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd">\n'
'<span class="__cf_email__" '
'data-cfemail="0b67666267676e794b656e7c686a656a6a65676269796a79722564796c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-06-16 04:20:41 [canaan_library] 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-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171946>
{'event_url': 'https://www.newcanaanlibrary.org/event/reptile-nook-frog-summer-hold-171946',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The Reptile Nook Presents Animal Talk</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5559/lc_featured_image?alternative_text=frog"><img '
'alt="frog" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-03/1e7d65_9b70cf6eff3f4968b6396482a47dfb40~mv2_0.jpeg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/171946/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/171946/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'14, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join <a '
'href="https://www.thereptilenook.com/">The Reptile Nook</a> for '
'a meet and learn about 4 different animal species. We will be '
'meeting a lizard, snake, tortoise, and amphibian! This Animal '
'Talk program allows kids to meet the animals up close and dive '
'into learning about a variety of reptile, amphibian, and/or '
'invertebrate species.</p><p><strong>Best for families with '
'children 3 years old and up! </strong>Please register everyone '
'who is attending<strong> (Grown-ups and Kids). PLEASE ONLY '
'REGISTER FOR EITHER THE 3:30PM or 5:00PM session as they will be '
'a repeat of the program</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#e7848f8e8b83a78982908486898686898b8e859586959ec9889580"><span '
'class="__cf_email__" '
'data-cfemail="e98a8180858da9878c9e8a888788888785808b9b889b90c7869b8e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/reptile-nook-frog-summer-hold-171946" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-cy0-darauh5cjc-noi3c3-ppzyauyb5elj-kfoe68u4" '
'name="form_build_id" type="hidden" '
'value="form-Cy0-DarAUh5CjC-noI3c3_ppzYauYB5ELj-kfoE68U4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#91e3f7fee9d1fff4e6f2f0fff0f0fffdf8f3e3f0e3e8bffee3f6">\n'
'<span class="__cf_email__" '
'data-cfemail="6d1f0b02152d03081a0e0c030c0c0301040f1f0c1f1443021f0a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161842>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161842',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/12" '
'href="/events/week/2026/07/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/12" '
'href="/events/day/2026/07/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, July 12, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219098>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219098',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/13" '
'href="/events/week/2026/07/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/13" '
'href="/events/day/2026/07/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219098/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219098/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!\xa0</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#294a4140454d69474c5e4a484748484745404b5b485b5007465b4e"><span '
'class="__cf_email__" '
'data-cfemail="93f0fbfafff7d3fdf6e4f0f2fdf2f2fdfffaf1e1f2e1eabdfce1f4">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/summer-stories-and-crafts-ages-2-and-3-years-219098" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-89piqop59cj4wmxmo0knrzs3g-ravh8kq4iidfamlbu" '
'name="form_build_id" type="hidden" '
'value="form-89piqoP59CJ4WMxmo0KnrZs3G-RAvh8kQ4iIdFAMlbU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6c1e0a03142c02091b0f0d020d0d0200050e1e0d1e1542031e0b">\n'
'<span class="__cf_email__" '
'data-cfemail="7002161f08301e150713111e11111e1c1912021102095e1f0217">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203857>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203857',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup! for Grades K-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/13" '
'href="/events/week/2026/07/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/13" '
'href="/events/day/2026/07/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203857/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203857/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'13, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#94f7fcfdf8f0d4faf1e3f7f5faf5f5faf8fdf6e6f5e6edbafbe6f3"><span '
'class="__cf_email__" '
'data-cfemail="94f7fcfdf8f0d4faf1e3f7f5faf5f5faf8fdf6e6f5e6edbafbe6f3">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/chess-meetup-grades-k-5-203857" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-u4ul88zsd-owmzksmttj9wacdi-dywsatvblqtabbqe" '
'name="form_build_id" type="hidden" '
'value="form-u4uL88ZSd_oWMZKsmTTJ9WaCDi_dywSaTvBlQTAbbqE"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#37545f5e5b53775952405456595656595b5e554556454e19584550">\n'
'<span class="__cf_email__" '
'data-cfemail="385b5051545c78565d4f5b595659595654515a4a594a4116574a5f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Learn to Play Piano Through Your Favorite Movie Themes for '
'Ages 7-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:30pm–3:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211691/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211691/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 7 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to learn basic music concepts and start '
'piano playing through your favorite movie themes. The program is '
'designed for children ages 7-12 with some piano experience.\xa0'
'The children will explore the notes on the keyboard and learn '
'the note values, key signatures, dynamics and triads. There will '
'be a final Concert with everyone performing their favorite movie '
'themes!\xa0</p><p><strong>\xa0Please plan to attend all\xa03\xa0'
'sessions. This class meets on 7/11, 7/18, 7/25 from '
'2:30pm-3:30pm.\xa0</strong></p><p><em>Sample\xa0songs '
'include:</em>\xa0\xa0Let It Go, How Far I’ll Go, Can’t Stop This '
'Feeling, Into The Unknown, We Don’t Talk About Bruno, Kung Fu '
'Fighting, Hakuna Matata, A Whole New World, You’ve Got a Friend '
'In Me, Star Wars (Main Theme), Fly Love, Can You Feel The Love '
'Tonight and Beauty and The Beast.</p><p>Cary Wang, Junior at '
'Horace Mann School and Pre-college student at Manhattan School '
'of Music (MSM), has been invited to perform in Carnegie Hall 17 '
'times, Vienna’s prestigious Ehrbar Hall and Mozart Haus, London '
'Royal Albert Hall, Lincoln Center, Kaufman Center, and Yamaha '
'Artist Piano Concert, etc. Cary has been an avid volunteer '
'leader at the New Canaan Library and has held similar sessions '
'like this in the last 2 years. This initiative aims to help '
'students expand music education and develop a lifelong interest '
'in art appreciation by integrating with academic and leadership '
'development.</p><p>Cary started his piano learning journey at 6 '
'and has been Piano major at Manhattan School of Music since 2018 '
'with the honor of Dean’s List for a 4.0 GPA each year.\xa0 At '
'the age of 9, he accomplished Piano Level 10 Assessment of Royal '
'Conservatory Music Development Program with First Honors. In '
'June 2023, he completed the highest level, Associate Diploma of '
'Piano Performance with Honors.\xa0Cary has won many piano '
'competitions since 6. He was named as the Alternative Winner of '
'the 2024-25 Music Teachers National Association (“MTNA”) '
'Connecticut Senior Piano Competition, the Sole Winner of the '
'2022-23 MTNA Connecticut Junior Piano Competition, the Alternate '
'Winner of 2023-24, and the Sole Winner of 2019-20 highly '
'competitive MSM Piano Concerto Competition. Cary made his '
'orchestral debut with the New York Concerti Sinfonietta in '
'January 2020 at Lincoln Center.</p><p>Cary’s Music Channel -\xa0'
'<a '
'href="https://www.youtube.com/@johnwang5673"><strong>https://www.youtube.com/@johnwang5673</strong></a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#284b4041444c68464d5f4b494649494644414a5a495a5106475a4f"><span '
'class="__cf_email__" '
'data-cfemail="a9cac1c0c5cde9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-bi5mdl-zffj5oatd4fmwwwmjo6voyzsnnwdfticriii" '
'name="form_build_id" type="hidden" '
'value="form-bI5MDL-ZFfJ5Oatd4fMwwWMJO6VOyzSNNWdFTiCRIiI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#412229282d25012f243622202f20202f2d2823332033386f2e3326">\n'
'<span class="__cf_email__" '
'data-cfemail="6c0f040500082c02091b0f0d020d0d0200050e1e0d1e1542031e0b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168842>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168842',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/14" '
'href="/events/week/2026/07/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/14" '
'href="/events/day/2026/07/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168842/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168842/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168842/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#c5a6adaca9a185aba0b2a6a4aba4a4aba9aca7b7a4b7bcebaab7a2"><span '
'class="__cf_email__" '
'data-cfemail="98fbf0f1f4fcd8f6fdeffbf9f6f9f9f6f4f1faeaf9eae1b6f7eaff">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d4a6b2bbac94bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">\n'
'<span class="__cf_email__" '
'data-cfemail="9ceefaf3e4dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/audience-registration-new-canaans-got-talent-216570>
{'event_url': 'https://www.newcanaanlibrary.org/event/audience-registration-new-canaans-got-talent-216570',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>AUDIENCE REGISTRATION: New Canaan's Got Talent</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:00pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216570/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216570/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'11, 2026 @ 3:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>New Canaan\'s got talent--and '
'this is your chance to see it! From magic tricks to playing an '
'instrument, children entering grades 1 to 12 will show off their '
'special talents in our talent show! Join us at <strong>3 p.m. '
'Saturday, July 11</strong>, to cheer them on and experience the '
'rising stars of New Canaan.</p><p><strong>THIS REGISTRATION IS '
'FOR AUDIENCE MEMBERS. </strong><a '
'href="https://www.newcanaanlibrary.org/event/performer-registration-new-canaans-got-talent-grades-1-12-219088"><strong>IF '
'YOU WOULD LIKE TO BE IN THE TALENT SHOW, PLEASE REGISTER HERE '
"INSTEAD.\xa0</strong></a></p><p>New Canaan's Got Talent is "
'offered in collaboration with rising college sophomore Tara '
'Menon, who will also emcee the event.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#89eae1e0e5edc9e7ecfeeae8e7e8e8e7e5e0ebfbe8fbf0a7e6fbee"><span '
'class="__cf_email__" '
'data-cfemail="7c1f141510183c12190b1f1d121d1d1210151e0e1d0e0552130e1b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/audience-registration-new-canaans-got-talent-216570" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-8emqq5hrxodai-nlplfyn-gjite-innlyfeorrgeywq" '
'name="form_build_id" type="hidden" '
'value="form-8Emqq5hRxodai_NLpLFyn-GjITE_INNLYFEorRGEywQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#780a1e170038161d0f1b191619191614111a0a190a0156170a1f">\n'
'<span class="__cf_email__" '
'data-cfemail="186a7e776058767d6f7b797679797674717a6a796a6136776a7f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:41 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:41 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:41 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Advanced: Learn Music Theory through Piano for Ages '
'8-14</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:45pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211687/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211687/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 14.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to perfect your favorite piano pieces '
'through advance music theory, foundation for education '
'development and musical advancement. Children/Teens should have '
'piano experience. <strong>Best for ages 8-14</strong>. Class '
'will cover, theory concepts, major and minor scales, '
'dynamics/articulation, modes, triads/inversions, 7th chords, '
'performance enhancement, expression/interpretation, performance '
'etiquette and public speaking. The last class will include a '
'final Concert with everyone performing their pieces!\xa0'
'</p><p><strong>Please plan to attend all 3 sessions. This class '
'meets on 7/11, 7/18, & 7/25 from 3:45pm-4:45pm.\xa0'
'</strong></p><p>\xa0</p><p>Cary Wang, 10th Grader at Horace Mann '
'School and Pre-college student at Manhattan School of Music '
'(MSM), has been invited to perform in Carnegie Hall 16 times, '
'Vienna’s prestigious Ehrbar Hall and Mozarthaus, London Royal '
'Albert Hall, Lincoln Center, Kaufman Center, and Yamaha Artist '
'Piano Concert Series with Yamaha Artist Mr. Jose Ramon Mendez, '
'etc. Cary has been an avid volunteer leader of the Piano Village '
'Foundation by hosting a quarterly Music Appreciation workshop '
'for young kids and teaching them basic music theory. This '
'initiative provides music education to children and youth, '
'fostering personal growth, confidence, and community engagement '
'through musical expression. It aims to cultivate core values and '
'lifelong interest in the arts, integrating these with academic '
'and leadership development.</p><p>Cary has won many piano '
'competitions since the age of six.\xa0He was named as Sole '
'Winner of the 2022-23 Music Teachers National Association '
'Connecticut State Junior Piano Competition, the Alternate Winner '
'of the 2023-24, and the Winner of the 2019-20 highly competitive '
'MSM Piano Concerto Competition, the 2020 Gold Award, and the '
'2017 Silver Award of Piano group SinoVision the Teen’s Talent '
'Show. Cary made his orchestral debut with the New York Concerti '
'Sinfonietta in January 2020 at Lincoln Center. Since 2016, Cary '
'has been invited to perform at the New Canaan Inn, Waveny '
'Lifecare Network, twice a year to share the joy with the seniors '
'there. He received the 2023 Presidential Service Award for his '
'work.</p><p>Cary’s Music Channel - <a '
'href="https://www.youtube.com/@johnwang5673">https://www.youtube.com/@johnwang5673</a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#c8aba0a1a4ac88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf"><span '
'class="__cf_email__" '
'data-cfemail="7b181312171f3b151e0c181a151a1a15171219091a09025514091c">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-peouoptcyswghku4-2veiu0cqipfw9viwe1m2muuliy" '
'name="form_build_id" type="hidden" '
'value="form-pEoUOpTCyswGhkU4-2Veiu0cQipfw9vIWE1m2MuUlIY"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e4878c8d8880a48a819387858a85858a888d869685969dca8b9683">\n'
'<span class="__cf_email__" '
'data-cfemail="c1a2a9a8ada581afa4b6a2a0afa0a0afada8a3b3a0b3b8efaeb3a6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216551> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216554> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/performer-registration-new-canaans-got-talent-grades-1-12-219088> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gentle-yoga-185019> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/drop-storytime-green-209743> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223491> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219104> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chair-yoga-180343> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/brothers-grimm> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216551>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216551',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Painting Class for Incoming Grades 2-3: Yayoi '
'Kusama-Inspired Dot Art</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/10" '
'href="/events/week/2026/07/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/10" '
'href="/events/day/2026/07/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216551">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216552">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216553">\n'
' 07/24/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216551/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216551/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 2nd Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and make '
'something amazing? Join a few NCHS art students for an engaging, '
'hands-on art class! Students will create dot paintings inspired '
'by renowned artist Yayoi Kusama, exploring her style through '
'color, patterns, and bold design. Materials will be provided, '
'and students are encouraged to wear clothing that may get '
'messy.</p><p>This program is intended for students entering '
'grades 2-3 in Fall 2026.\xa0</p><p>These classes are organized '
'by Emily Meng, a rising high school sophomore and recipient of '
'multiple Scholastic Art Awards, including the CAEA/Arnini Best '
'in Drawing award, as well as additional honors in national and '
'international competitions. Emily has a strong background in '
'drawing, painting, crafting, and mural work, and she is '
'passionate about sharing creative, hands-on experiences with '
'young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#d4b7bcbdb8b094bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3"><span '
'class="__cf_email__" '
'data-cfemail="791a1110151d39171c0e1a181718181715101b0b180b0057160b1e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216551" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-flmdidtatw-irvtmf81ztxyrdzssgasosxnz-n-gbnc" '
'name="form_build_id" type="hidden" '
'value="form-flmDidTatw_irvTmf81zTXyRdzsSgAsoSxnz_N-GBnc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5527333a2d153b302236343b34343b393c372734272c7b3a2732">\n'
'<span class="__cf_email__" '
'data-cfemail="9eecf8f1e6def0fbe9fdfff0fffff0f2f7fcecffece7b0f1ecf9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216554>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216554',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Art Class for Incoming Grades 4-5: Van Gogh-Inspired '
'Starry Night</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216554">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216555">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216556">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216554/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216554/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and '
'recreate a famous masterpiece? Join a few NCHS art students for '
'an engaging, hands-on art class! Using oil pastels, students '
'will create their own <em>Starry Night</em> drawings inspired by '
'Vincent van Gogh, focusing on line, movement, and color. '
'Materials will be provided, and students are encouraged to wear '
'clothing that may get messy.</p><p>This program is intended for '
'students entering grades 4-5 in Fall 2026.\xa0</p><p>These '
'classes are organized by Emily Meng, a rising high school '
'sophomore and recipient of multiple Scholastic Art Awards, '
'including the CAEA/Arnini Best in Drawing award, as well as '
'additional honors in national and international competitions. '
'Emily has a strong background in drawing, painting, crafting, '
'and mural work, and she is passionate about sharing creative, '
'hands-on experiences with young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#680b0001040c28060d1f0b090609090604010a1a091a1146071a0f"><span '
'class="__cf_email__" '
'data-cfemail="64070c0d0800240a011307050a05050a080d061605161d4a0b1603">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216554" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-qmvmy7lqxhmeupye1ysgxjl9mbav8bswhf0qj4lfzxu" '
'name="form_build_id" type="hidden" '
'value="form-qmvMY7lqxHmEuPye1YsgXJL9mbaV8BSWHf0qj4lFZXU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f68490998eb69893819597989797989a9f948497848fd8998491">\n'
'<span class="__cf_email__" '
'data-cfemail="3143575e49715f544652505f50505f5d5853435043481f5e4356">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/performer-registration-new-canaans-got-talent-grades-1-12-219088>
{'event_url': 'https://www.newcanaanlibrary.org/event/performer-registration-new-canaans-got-talent-grades-1-12-219088',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>PERFORMER REGISTRATION: New Canaan's Got Talent (Grades "
'1-12)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Family Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219088/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219088/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'5, 2026 @ 11:59pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 12th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Have a special talent? Come show '
'it off at the New Canaan’s Got Talent, Talent Show. All children '
'entering grades 1- 12 are welcome to participate in the show! '
'Children can showcase any talent they choose, from magic tricks '
'to playing an instrument -- no talent is too small!\xa0'
'</p><p><strong>The Talent Show will begin at 3 p.m. Saturday, '
'July 11. Presenters should plan to arrive at 2 p.m. to '
'prepare.\xa0</strong></p><p><strong>Presenters must register by '
'11:59 p.m. July 5. To help us plan, please make sure to list '
'your talent and any equipment needed when you register. Please '
'keep acts under 3 minutes so that we can feature as many talents '
'as possible.\xa0</strong></p><p><strong>THIS REGISTRATION IS FOR '
'PRESENTERS. </strong><a '
'href="https://www.newcanaanlibrary.org/event/audience-registration-new-canaans-got-talent-216570"><strong>AUDIENCE '
'MEMBERS, PLEASE REGISTER HERE INSTEAD</strong></a><strong>.\xa0'
"</strong></p><p>New Canaan's Got Talent is offered in "
'collaboration with rising college sophomore Tara Menon, who will '
'also emcee the event.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#8fece7e6e3ebcfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8"><span '
'class="__cf_email__" '
'data-cfemail="0d6e656461694d63687a6e6c636c6c6361646f7f6c7f7423627f6a">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Participation Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the library for '
'the duration of the program</strong>. If your child finishes a '
'program early, or if a child becomes ill, distressed, or behaves '
'in a manner that interferes with other participants’ enjoyment '
'of the program, they may be released from class before the '
'program’s end time. Please ensure that your child knows exactly '
'where to find you at all times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/performer-registration-new-canaans-got-talent-grades-1-12-219088" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-hftmdmy3hrbmlitzrdkraw-g81offu9lqixvrl3swui" '
'name="form_build_id" type="hidden" '
'value="form-HfTmDMY3hRbMlItZrdkraW-g81OFfU9lqixVrL3SwuI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#760410190e361813011517181717181a1f140417040f58190411">\n'
'<span class="__cf_email__" '
'data-cfemail="e597838a9da58b809286848b84848b898c879784979ccb8a9782">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gentle-yoga-185019>
{'event_url': 'https://www.newcanaanlibrary.org/event/gentle-yoga-185019',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gentle Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185014">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185017">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/gentle-yoga-185019">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185020">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185019/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185019/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'20, 2026 @ 10:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We have teamed up with the New '
'Canaan YMCA to create a tranquil, foundation-building class '
'designed to introduce new students to yoga, as well as offer '
'regular practitioners a gentle class to complement their yoga '
'practice. <strong>Participants must bring their own yoga mat. '
'</strong>Yoga blocks are optional. The class is designed to have '
'modified poses so everyone has the best experience.\xa0'
'</p><p><strong>About the instructor:\xa0</strong>Martha Risom '
'has been teaching gentle yoga for over decade. She continues to '
"be inspired by her students and yoga's ability to lead us toward "
'a path of physical, mental, emotional and spiritual well '
'being.\xa0</p><p><br/>\xa0</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/gentle-yoga-185019" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-yzog6rdb96uiflf6oly3colvtdinoscidr1etnjnr0" '
'name="form_build_id" type="hidden" '
'value="form-_Yzog6rDb96uiFLF6OLY3cOlvtDInOSCIDR1EtNJNr0"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e99d828c90a9878c9e8a888788888785808b9b889b90c7869b8e">\n'
'<span class="__cf_email__" '
'data-cfemail="2a5e414f536a444f5d494b444b4b44464348584b58530445584d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' YMCA of New Canaan \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/drop-storytime-green-209743>
{'event_url': 'https://www.newcanaanlibrary.org/event/drop-storytime-green-209743',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Drop-in Storytime on the Green!</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/10" '
'href="/events/week/2026/07/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/10" '
'href="/events/day/2026/07/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson Terrace\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–10:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209740">\n'
' 06/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209741">\n'
' 06/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209742">\n'
' 06/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/drop-storytime-green-209743">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209744">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209743/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209743/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209743/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join our librarians outside for '
'30 minutes of fun stories, songs and movement. Bring a blanket '
'to spread out and enjoy the green space.\xa0Best for families '
'with children ages 5 and under! This storytime is drop-in, no '
'registration is needed.\xa0</p><p><strong>In case of inclement '
'weather, storytime will move inside.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#33505b5a5f57735d564450525d52525d5f5a514152414a1d5c4154"><span '
'class="__cf_email__" '
'data-cfemail="4e2d2627222a0e202b392d2f202f2f2022272c3c2f3c3760213c29">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Child\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ffbc9796939bbf919a889c9e919e9e9193969d8d9e8d86d1908d98">\n'
'<span class="__cf_email__" '
'data-cfemail="85c6edece9e1c5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223491>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223491',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/11" '
'href="/events/week/2026/07/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/11" '
'href="/events/day/2026/07/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223491/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223491/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223491/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#caa5a4a6a3a4afb8afac8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad"><span '
'class="__cf_email__" '
'data-cfemail="aac5c4c6c3c4cfd8cfcceac4cfddc9cbc4cbcbc4c6c3c8d8cbd8d384c5d8cd">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2d454e44404443426d43485a4e4c434c4c4341444f5f4c5f5403425f4a">\n'
'<span class="__cf_email__" '
'data-cfemail="660e050f0b0f0809260803110507080707080a0f041407141f48091401">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219104>
{'event_url': 'https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219104',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Math Art for Grades 1-2</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/math-art-grades-1-2-219104">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219105">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219106">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219107">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219104/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219104/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 2nd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children entering grades 1 and '
'2, join Miss Rebecca for <strong>4 days\xa0</strong>of hands-on '
"art projects that will level up your math skills! Each day's "
'project will incorporate math in a fun, interactive way that '
'gets creativity flowing.\xa0<strong>This is an ongoing club. '
'Please plan to attend for all 4 days (3:30 p.m. July 20 through '
'23).</strong></p><p>This program is intended for children '
'entering grades 1-2 in Fall 2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#80e3e8e9ece4c0eee5f7e3e1eee1e1eeece9e2f2e1f2f9aeeff2e7"><span '
'class="__cf_email__" '
'data-cfemail="8fece7e6e3ebcfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/math-art-grades-1-2-219104" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ujf0siip8ifo2tf51hj5cg98kkvfl7e-pbeimwdmwag" '
'name="form_build_id" type="hidden" '
'value="form-UjF0siIp8IFO2Tf51hJ5CG98KkVfL7e-pbeImWdMWag"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#90e2f6ffe8d0fef5e7f3f1fef1f1fefcf9f2e2f1e2e9beffe2f7">\n'
'<span class="__cf_email__" '
'data-cfemail="691b0f061129070c1e0a080708080705000b1b081b1047061b0e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Advanced: Learn Music Theory through Piano for Ages '
'8-14</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/18" '
'href="/events/week/2026/07/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/18" '
'href="/events/day/2026/07/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:45pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211688/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211688/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 14.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to perfect your favorite piano pieces '
'through advance music theory, foundation for education '
'development and musical advancement. Children/Teens should have '
'piano experience. <strong>Best for ages 8-14</strong>. Class '
'will cover, theory concepts, major and minor scales, '
'dynamics/articulation, modes, triads/inversions, 7th chords, '
'performance enhancement, expression/interpretation, performance '
'etiquette and public speaking. The last class will include a '
'final Concert with everyone performing their pieces!\xa0'
'</p><p><strong>Please plan to attend all 3 sessions. This class '
'meets on 7/11, 7/18, & 7/25 from 3:45pm-4:45pm.\xa0'
'</strong></p><p>\xa0</p><p>Cary Wang, 10th Grader at Horace Mann '
'School and Pre-college student at Manhattan School of Music '
'(MSM), has been invited to perform in Carnegie Hall 16 times, '
'Vienna’s prestigious Ehrbar Hall and Mozarthaus, London Royal '
'Albert Hall, Lincoln Center, Kaufman Center, and Yamaha Artist '
'Piano Concert Series with Yamaha Artist Mr. Jose Ramon Mendez, '
'etc. Cary has been an avid volunteer leader of the Piano Village '
'Foundation by hosting a quarterly Music Appreciation workshop '
'for young kids and teaching them basic music theory. This '
'initiative provides music education to children and youth, '
'fostering personal growth, confidence, and community engagement '
'through musical expression. It aims to cultivate core values and '
'lifelong interest in the arts, integrating these with academic '
'and leadership development.</p><p>Cary has won many piano '
'competitions since the age of six.\xa0He was named as Sole '
'Winner of the 2022-23 Music Teachers National Association '
'Connecticut State Junior Piano Competition, the Alternate Winner '
'of the 2023-24, and the Winner of the 2019-20 highly competitive '
'MSM Piano Concerto Competition, the 2020 Gold Award, and the '
'2017 Silver Award of Piano group SinoVision the Teen’s Talent '
'Show. Cary made his orchestral debut with the New York Concerti '
'Sinfonietta in January 2020 at Lincoln Center. Since 2016, Cary '
'has been invited to perform at the New Canaan Inn, Waveny '
'Lifecare Network, twice a year to share the joy with the seniors '
'there. He received the 2023 Presidential Service Award for his '
'work.</p><p>Cary’s Music Channel - <a '
'href="https://www.youtube.com/@johnwang5673">https://www.youtube.com/@johnwang5673</a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#83e0ebeaefe7c3ede6f4e0e2ede2e2edefeae1f1e2f1faadecf1e4"><span '
'class="__cf_email__" '
'data-cfemail="6d0e050401092d03081a0e0c030c0c0301040f1f0c1f1443021f0a">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c1a2a9a8ada581afa4b6a2a0afa0a0afada8a3b3a0b3b8efaeb3a6">\n'
'<span class="__cf_email__" '
'data-cfemail="d5b6bdbcb9b195bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:42 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:42 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:42 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chair-yoga-180343>
{'event_url': 'https://www.newcanaanlibrary.org/event/chair-yoga-180343',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chair Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:30am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180318">\n'
' 01/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180319">\n'
' 01/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180325">\n'
' 03/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180326">\n'
' 03/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180327">\n'
' 03/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180328">\n'
' 03/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180329">\n'
' 04/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180331">\n'
' 04/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180332">\n'
' 04/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180333">\n'
' 05/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180334">\n'
' 05/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180335">\n'
' 05/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180336">\n'
' 06/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180341">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chair-yoga-180343">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180344">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180343/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180343/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'20, 2026 @ 11:30am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We are pleased to continue our '
'partnership with the New Canaan YMCA to bring you Chair '
'Yoga.</p><p>With the support of a chair, this gentle Chair Yoga '
'class will help you improve postural alignment, maintain pelvic '
'mobility, reduce muscle\xa0tension and gain strength through '
'flowing movements and focused breathing.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#3c5352505552594e595a7c52594b5f5d525d5d5250555e4e5d4e4512534e5b"><span '
'class="__cf_email__" '
'data-cfemail="dfb0b1b3b6b1baadbab99fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/chair-yoga-180343" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-sywaght6tkjcrispimvmqbyay-tbqr3p1frc1qgznpc" '
'name="form_build_id" type="hidden" '
'value="form-SywAGhT6TkjcRispimVmqByaY-TbQr3P1FrC1QGzNPc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#81f5eae4f8c1efe4f6e2e0efe0e0efede8e3f3e0f3f8afeef3e6">\n'
'<span class="__cf_email__" '
'data-cfemail="31455a5448715f544652505f50505f5d5853435043481f5e4356">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/brothers-grimm>
{'event_url': 'https://www.newcanaanlibrary.org/event/brothers-grimm',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Once Upon a Darker Time: The Brothers Grimm and German '
'Folklore</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5814/lc_featured_image?alternative_text=Golden%20Cosmos%20Illustration%20for%20New%20Yorker%20Brothers%20Grimm%20article"><img '
'alt="Golden Cosmos Illustration for New Yorker Brothers Grimm '
'article" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-06/r45212.jpg" '
'width="377"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223245/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223245/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In 1812, brothers Jacob and '
'Wilhelm Grimm published their first collection of German '
'folktales, including stories such as <em>Little Red Riding '
'Hood</em>, <em>Hansel and Gretel</em>, and '
'<em>Rumpelstiltskin</em>. Passed down through generations by '
'oral tradition, these tales were far more than children’s '
'entertainment; they reflected the fears, beliefs, social values, '
'and cautionary lessons of their time. Join reference librarian '
'Flannery for an exploration of the darker history behind the '
'Brothers Grimm, the role of oral storytelling in German culture, '
'and the enduring power of these tales to reveal what societies '
'fear, value, and remember.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/brothers-grimm" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-dyi2kfpr-7mur1v3gc-1oedihjxepe3lzcor6rptwdi" '
'name="form_build_id" type="hidden" '
'value="form-dYI2Kfpr-7muR1V3Gc-1OeDihjXePe3LzcOR6rpTwdI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#395f495055555056575e584b5d575c4b79575c4e5a585758585755505b4b584b4017564b5e">\n'
'<span class="__cf_email__" '
'data-cfemail="c7a1b7aeababaea8a9a0a6b5a3a9a2b587a9a2b0a4a6a9a6a6a9abaea5b5a6b5bee9a8b5a0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945082">\n'
' (203) 594-5082\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203858> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219099> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225969> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=5> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161843> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216555> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/notable-reads-book-group-london-falling> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218080> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216552> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224494> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223492> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/red-cross-blood-drive-206023> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/drop-storytime-green-209744> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203858>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203858',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup! for Grades K-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203858/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203858/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'20, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#85e6edece9e1c5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2"><span '
'class="__cf_email__" '
'data-cfemail="5a393233363e1a343f2d393b343b3b34363338283b28237435283d">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/chess-meetup-grades-k-5-203858" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-eo3a-00tyl-zrt9nyby-wgs2sdfamqhsczb0cfy3amu" '
'name="form_build_id" type="hidden" '
'value="form-EO3A_00TyL-ZRt9nyby-WGs2SdFAMQhSCZb0cFy3AMU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a1c2c9c8cdc5e1cfc4d6c2c0cfc0c0cfcdc8c3d3c0d3d88fced3c6">\n'
'<span class="__cf_email__" '
'data-cfemail="d7b4bfbebbb397b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219099>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219099',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219099/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219099/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!\xa0</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#e5868d8c8981a58b809286848b84848b898c879784979ccb8a9782"><span '
'class="__cf_email__" '
'data-cfemail="62010a0b0e06220c071501030c03030c0e0b001003101b4c0d1005">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/summer-stories-and-crafts-ages-2-and-3-years-219099" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-tb1auwl-0jjocvgazdloew1p38e7qpxs4qv4oimmsw4" '
'name="form_build_id" type="hidden" '
'value="form-tb1AUwl-0jJOCvgAzdLoEW1p38E7qPxS4Qv4oiMMSW4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4a382c25320a242f3d292b242b2b24262328382b38336425382d">\n'
'<span class="__cf_email__" '
'data-cfemail="addfcbc2d5edc3c8daceccc3ccccc3c1c4cfdfccdfd483c2dfca">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225969>
{'event_url': 'https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225969',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Intermediate Italian Conversation Class</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 7:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/intermediate-italian-conversation-class-225969">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/intermediate-italian-conversation-class-225970">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5807/lc_featured_image?alternative_text=italian%20conversation%20class%20image"><img '
'alt="italian conversation class image" class="img-fluid" '
'height="294" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-06/italian.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225969/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225969/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'16, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Benvenuti! If you are looking to '
'move beyond textbook phrases and truly embrace <em>la bella '
'lingua</em>, join us for this engaging coversation class. \xa0'
'Designed for intermediate learners, these sessions focus on the '
'rhythm, culture, and authentic spirit of Italian life.</p><p>\xa0'
'</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/intermediate-italian-conversation-class-225969" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-c9ielcpvt8la0uwv-cmrmvq4ns9rnz-vyddfmqmsuaq" '
'name="form_build_id" type="hidden" '
'value="form-c9IELcPvT8la0uWv_CMrmvq4Ns9RNz_vYdDfMQmSuaQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#26524d435f664843514547484747484a4f445447545f08495441">\n'
'<span class="__cf_email__" '
'data-cfemail="46322d233f062823312527282727282a2f243427343f68293421">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' David Fischer\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161843>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161843',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/19" '
'href="/events/week/2026/07/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/19" '
'href="/events/day/2026/07/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, July 19, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Learn to Play Piano Through Your Favorite Movie Themes for '
'Ages 7-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/18" '
'href="/events/week/2026/07/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/18" '
'href="/events/day/2026/07/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:30pm–3:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211692/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211692/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 7 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to learn basic music concepts and start '
'piano playing through your favorite movie themes. The program is '
'designed for children ages 7-12 with some piano experience.\xa0'
'The children will explore the notes on the keyboard and learn '
'the note values, key signatures, dynamics and triads. There will '
'be a final Concert with everyone performing their favorite movie '
'themes!\xa0</p><p><strong>\xa0Please plan to attend all\xa03 '
'sessions. This class meets on 7/11, 7/18, & 7/25 from '
'2:30-3:30pm.</strong></p><p><em>Sample\xa0songs '
'include:</em>\xa0\xa0Let It Go, How Far I’ll Go, Can’t Stop This '
'Feeling, Into The Unknown, We Don’t Talk About Bruno, Kung Fu '
'Fighting, Hakuna Matata, A Whole New World, You’ve Got a Friend '
'In Me, Star Wars (Main Theme), Fly Love, Can You Feel The Love '
'Tonight and Beauty and The Beast.</p><p>Cary Wang, Junior at '
'Horace Mann School and Pre-college student at Manhattan School '
'of Music (MSM), has been invited to perform in Carnegie Hall 17 '
'times, Vienna’s prestigious Ehrbar Hall and Mozart Haus, London '
'Royal Albert Hall, Lincoln Center, Kaufman Center, and Yamaha '
'Artist Piano Concert, etc. Cary has been an avid volunteer '
'leader at the New Canaan Library and has held similar sessions '
'like this in the last 2 years. This initiative aims to help '
'students expand music education and develop a lifelong interest '
'in art appreciation by integrating with academic and leadership '
'development.</p><p>Cary started his piano learning journey at 6 '
'and has been Piano major at Manhattan School of Music since 2018 '
'with the honor of Dean’s List for a 4.0 GPA each year.\xa0 At '
'the age of 9, he accomplished Piano Level 10 Assessment of Royal '
'Conservatory Music Development Program with First Honors. In '
'June 2023, he completed the highest level, Associate Diploma of '
'Piano Performance with Honors.\xa0Cary has won many piano '
'competitions since 6. He was named as the Alternative Winner of '
'the 2024-25 Music Teachers National Association (“MTNA”) '
'Connecticut Senior Piano Competition, the Sole Winner of the '
'2022-23 MTNA Connecticut Junior Piano Competition, the Alternate '
'Winner of 2023-24, and the Sole Winner of 2019-20 highly '
'competitive MSM Piano Concerto Competition. Cary made his '
'orchestral debut with the New York Concerti Sinfonietta in '
'January 2020 at Lincoln Center.</p><p>Cary’s Music Channel -\xa0'
'<a '
'href="https://www.youtube.com/@johnwang5673"><strong>https://www.youtube.com/@johnwang5673</strong></a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#a9cac1c0c5cde9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce"><span '
'class="__cf_email__" '
'data-cfemail="a0c3c8c9ccc4e0cec5d7c3c1cec1c1ceccc9c2d2c1d2d98ecfd2c7">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7e1d1617121a3e101b091d1f101f1f1012171c0c1f0c0750110c19">\n'
'<span class="__cf_email__" '
'data-cfemail="7e1d1617121a3e101b091d1f101f1f1012171c0c1f0c0750110c19">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216555>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216555',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Art Class for Incoming Grades 4-5: CD Color Wheel '
'Spinner</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/18" '
'href="/events/week/2026/07/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/18" '
'href="/events/day/2026/07/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 12:00pm–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216554">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216555">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216556">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216555/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216555/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'18, 2026 @ 12:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and '
'experiment with art and physics? Join a few NCHS art students '
'for an engaging, hands-on art class! Students will design and '
'color on CDs to create spinning color wheels, exploring how '
'motion blends colors together in surprising ways. Materials will '
'be provided.</p><p>This program is intended for students '
'entering grades 4-5 in Fall 2026.\xa0</p><p>These classes are '
'organized by Emily Meng, a rising high school sophomore and '
'recipient of multiple Scholastic Art Awards, including the '
'CAEA/Arnini Best in Drawing award, as well as additional honors '
'in national and international competitions. Emily has a strong '
'background in drawing, painting, crafting, and mural work, and '
'she is passionate about sharing creative, hands-on experiences '
'with young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#47242f2e2b23072922302426292626292b2e253526353e69283520"><span '
'class="__cf_email__" '
'data-cfemail="65060d0c0901250b001206040b04040b090c071704171c4b0a1702">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216555" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-domjl1eqq3rtmeqtg06r-culhrirnhvralf5lexsv1c" '
'name="form_build_id" type="hidden" '
'value="form-DOMJl1eqq3RTMeqTg06r_CuLHriRnhvrAlF5LexsV1c"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#562430392e163833213537383737383a3f342437242f78392431">\n'
'<span class="__cf_email__" '
'data-cfemail="ccbeaaa3b48ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/notable-reads-book-group-london-falling>
{'event_url': 'https://www.newcanaanlibrary.org/event/notable-reads-book-group-london-falling',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Notable Reads Book Group: London Falling by Patrick Radden '
'Keefe</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/16" '
'href="/events/week/2026/07/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/16" '
'href="/events/day/2026/07/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:15am–12:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224461/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224461/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'16, 2026 @ 11:15am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>This group reads broadly, with a '
'focus on literary award winners, well-reviewed fiction, and '
'translations.\xa0This month’s discussion is on\xa0<em>London '
'Falling</em> By Patrick Radden Keefe</p><p>Copies of the book '
'are ready for pickup in the HOLDS area on the first floor of the '
'library.\xa0 Please check out your copy with a '
'librarian.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/notable-reads-book-group-london-falling" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-b3w0gz3o4scc1wtf08va4zqbxbbunrunz-feupah-ju" '
'name="form_build_id" type="hidden" '
'value="form-b3w0gZ3O4ScC1wTF08vA4zQbXBBuNruNz-FeupAH_jU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#25514e405c654b405246444b44444b494c475744575c0b4a5742">\n'
'<span class="__cf_email__" '
'data-cfemail="65110e001c250b001206040b04040b090c071704171c4b0a1702">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218080>
{'event_url': 'https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218080',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>EV3 Robotics with Happy Code Club for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/16" '
'href="/events/week/2026/07/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/16" '
'href="/events/day/2026/07/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218080/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218080/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'16, 2026 @ 4:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn the basics of programming '
'robots with EV3 Lego Mindstorms, using a First Lego League '
'training guide led by Happy Code Club. \xa0We will explore '
'coding concepts as we program our robot to complete challenges '
'and compete in games. For students in grades 5-8 in Fall '
'2026.</p><p><em>Registration opens June 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#6d0e050401092d03081a0e0c030c0c0301040f1f0c1f1443021f0a"><span '
'class="__cf_email__" '
'data-cfemail="7e1d1617121a3e101b091d1f101f1f1012171c0c1f0c0750110c19">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/ev3-robotics-happy-code-club-grades-5-8-218080" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-zdc4m8nibz-si0lb3vba6k1hggduuywzg0dbcgq10cq" '
'name="form_build_id" type="hidden" '
'value="form-zdc4M8nIbZ_si0lB3vbA6k1HgGDuUYwZg0dBCgQ10CQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#771b1a1e1b1b1205371912001416191616191b1e150516050e59180510">\n'
'<span class="__cf_email__" '
'data-cfemail="4428292d28282136042a213327252a25252a282d263625363d6a2b3623">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:43 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:43 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216552>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216552',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Drawing Class for Incoming Grades 2-3: Favorite Animated '
'Characters</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/17" '
'href="/events/week/2026/07/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/17" '
'href="/events/day/2026/07/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216551">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216552">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216553">\n'
' 07/24/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216552/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216552/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 2nd Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and draw '
'your favorite characters? Join a few NCHS art students for an '
'engaging, hands-on class! Students will learn step-by-step '
'techniques to draw their favorite animated characters, including '
'SpongeBob, Pikachu, Mario, and more, while adding their own '
'creative details and style. Materials will be '
'provided.</p><p>This program is intended for students entering '
'grades 2-3 in Fall 2026.\xa0</p><p>These classes are organized '
'by Emily Meng, a rising high school sophomore and recipient of '
'multiple Scholastic Art Awards, including the CAEA/Arnini Best '
'in Drawing award, as well as additional honors in national and '
'international competitions. Emily has a strong background in '
'drawing, painting, crafting, and mural work, and she is '
'passionate about sharing creative, hands-on experiences with '
'young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ed8e85848189ad83889a8e8c838c8c8381848f9f8c9f94c3829f8a"><span '
'class="__cf_email__" '
'data-cfemail="76151e1f1a12361813011517181717181a1f140417040f58190411">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216552" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-u1nr4vmhpvx1kzwz0v-kmfeon3ozbpf8w1q7xtbgdos" '
'name="form_build_id" type="hidden" '
'value="form-U1Nr4vmHpVx1kzWz0V-KMfEOn3OZBPF8W1Q7xTBgDOs"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f587939a8db59b908296949b94949b999c978794878cdb9a8792">\n'
'<span class="__cf_email__" '
'data-cfemail="3f4d5950477f515a485c5e515e5e5153565d4d5e4d4611504d58">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:43 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224494>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224494',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Embroidery for Intermediate Sewers</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/16" '
'href="/events/week/2026/07/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/16" '
'href="/events/day/2026/07/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224493">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-embroidery-intermediate-sewers-224494">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224495">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224496">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5797/lc_featured_image?alternative_text=Two%20embroidered%20blue%20hummingbirds%20face%20each%20other.%20There%20is%20delicate%20filigree%20surrounding%20them."><img '
'alt="Two embroidered blue hummingbirds face each other. There is '
'delicate filigree surrounding them." class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/framed%20embroidery_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224494/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224494/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 1:00pm.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/copy-embroidery-intermediate-sewers-224493">first '
'event</a> to register.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this series, sewers will use '
'a number of familiar stitch and knot techniques to create a '
'beautiful piece of art. In the final session, you will learn a '
'basic DIY framing technique. <em><strong>You must bring your own '
'5x7 frame.</strong></em> Each participant will take home a '
'lovely piece of art and a new set of skills.\xa0'
'</p><p><strong>Please only sign up if you can attend all '
'sessions. Due to the nature of the class, your project will not '
'be completed in one day.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#acc3c2c0c5c2c9dec9caecc2c9dbcfcdc2cdcdc2c0c5cedecdded582c3decb"><span '
'class="__cf_email__" '
'data-cfemail="1a75747673747f687f7c5a747f6d797b747b7b74767378687b68633475687d">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1d7c7e717c6f765d73786a7e7c737c7c7371747f6f7c6f6433726f7a">\n'
'<span class="__cf_email__" '
'data-cfemail="28494b44495a4368464d5f4b494649494644414a5a495a5106475a4f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223492>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223492',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/18" '
'href="/events/week/2026/07/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/18" '
'href="/events/day/2026/07/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223492/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223492/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223492/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#9af5f4f6f3f4ffe8fffcdaf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd"><span '
'class="__cf_email__" '
'data-cfemail="4728292b2e2922352221072922302426292626292b2e253526353e69283520">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#264e454f4b4f4849664843514547484747484a4f445447545f08495441">\n'
'<span class="__cf_email__" '
'data-cfemail="0a626963676364654a646f7d696b646b6b64666368786b78732465786d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10043
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/red-cross-blood-drive-206023>
{'event_url': 'https://www.newcanaanlibrary.org/event/red-cross-blood-drive-206023',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Red Cross Blood Drive</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/17" '
'href="/events/week/2026/07/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/17" '
'href="/events/day/2026/07/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 12:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5804/lc_featured_image?alternative_text=american%20red%20cross%20logo%20"><img '
'alt="american red cross logo " class="img-fluid" height="73" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-06/arc-biomed-logo.png.img_.png" '
'width="336"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206023/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206023/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/206023/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B26%5D=26">Health '
'& Wellness</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The need to maintain a reliable '
'blood supply is constant and vital; by donating, you are helping '
'to change, and perhaps save, a life! <a '
'href="https://www.redcrossblood.org/give.html/drive-results?zipSponsor=NewCanaanLib"><strong>Advanced '
'appointments are required; sign up '
'here.</strong></a></p><p>Donors must bring a positive form of '
'ID. For a complete list of requirements and helpful tips for '
'potential donors, please contact the Red Cross Donor Client '
'Center at 1-866-236-3276, open 24/7.\xa0</p><p>Information is '
'also available at redcrossblood.org.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3a4e515f437a545f4d595b545b5b54565358485b48431455485d">\n'
'<span class="__cf_email__" '
'data-cfemail="0b7f606e724b656e7c686a656a6a65676269796a79722564796c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945014">\n'
' (203) 594-5014\n'
' </a>\n'
'</span></div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Red Cross \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/drop-storytime-green-209744>
{'event_url': 'https://www.newcanaanlibrary.org/event/drop-storytime-green-209744',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Drop-in Storytime on the Green!</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/17" '
'href="/events/week/2026/07/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/17" '
'href="/events/day/2026/07/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson Terrace\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–10:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209740">\n'
' 06/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209741">\n'
' 06/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209742">\n'
' 06/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/drop-storytime-green-209743">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/drop-storytime-green-209744">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209744/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209744/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/209744/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join our librarians outside for '
'30 minutes of fun stories, songs and movement. Bring a blanket '
'to spread out and enjoy the green space.\xa0Best for families '
'with children ages 5 and under! This storytime is drop-in, no '
'registration is needed.\xa0</p><p><strong>In case of inclement '
'weather, storytime will move inside.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ec8f84858088ac82899b8f8d828d8d8280858e9e8d9e95c2839e8b"><span '
'class="__cf_email__" '
'data-cfemail="3d5e555451597d53584a5e5c535c5c5351545f4f5c4f4413524f5a">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Child\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#17547f7e7b73577972607476797676797b7e756576656e39786570">\n'
'<span class="__cf_email__" '
'data-cfemail="44072c2d2820042a213327252a25252a282d263625363d6a2b3623">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/intergenerational-string-quartet-concert-208503> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217694> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217705> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210790> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210788> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219782> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217931> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gordon-korman-217896> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-3-4-217330> (referer: https://www.newcanaanlibrary.org/events/list?page=4)
2026-06-16 04:20:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203734> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/intergenerational-string-quartet-concert-208503>
{'event_url': 'https://www.newcanaanlibrary.org/event/intergenerational-string-quartet-concert-208503',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Intergenerational String Quartet Concert: 250+ years of '
'American Music!</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5802/lc_featured_image?alternative_text=Picture%20of%20concert%20"><img '
'alt="Picture of concert " class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Intergenerational%20String%20Quartet%20Concert%20%281%29.png" '
'width="384"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/208503/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/208503/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 5:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Please join Janey & Friends '
'in an hourlong string quartet concert, as we journey through the '
'diverse landscape of American Musical History from a Native '
'American lullaby, to spirituals, Dvorak’s “American Quartet”, '
'Joplin rags, Ellington, Gershwin, the American Songbook, '
'Broadway, Motown, and modern pop chart toppers. This interactive '
'sampling will be more than a melting pot of sound, it will '
'illuminate the richly distinctive, yet intertwined pathways that '
'our musical culture travels. We are pleased to present this '
'program in recognition our national America 250 commemoration. '
'<strong>Great for Kids (Grades K-12), parents and grandparents '
'to attend together!\xa0</strong></p><p><br/>The quartet includes '
'Janey Choi, Buffi Jacobs, Hayden Oliver and Paul Woodiel.\xa0'
'</p><p>Canadian violinist/teaching artist/concert host,\xa0'
'<strong>Janey Choi</strong> has performed, taught, and '
'collaborated with artists across the globe, engaging audiences '
'of all ages and genres. She is the recipient of numerous awards '
'including National First Prize in the Canadian Music '
'Competition, an Artists International debut recital at Carnegie '
'Hall, and has participated in such festivals as Mostly Mozart, '
'Norfolk, Taos, Bar Harbor Music Festival, the Spoleto Festivals '
'in the U.S. and Italy, Festival Musical de Santo Domingo, the '
'Santa Fe Opera and the Sarasota Opera</p><p><strong>Buffi '
'Jacobs,</strong> an accomplished modernistic cellist and '
'composer, currently resides in the vibrant city of New York. She '
'is known for delivering captivating and innovative performances '
'and compositions. With a career spanning over three decades, '
'Buffi has continuously evolved as a musician, fearlessly '
'venturing beyond her comfort zones to gain fresh perspectives '
'and create truly unique experiences.</p><p><strong>Hayden '
'Oliver</strong> is a New York City–based violinist and violist '
'whose work spans musical theatre, classical performance, and '
'contemporary pop collaborations. After studying at the '
'University of North Carolina School of the Arts, he spent 17 '
'years performing throughout the Dallas–Fort Worth area before '
'making New York his home. Hayden toured for five years with the '
'national company of Hamilton and has shared the stage with '
'artists including Stevie Wonder, Harry Connick Jr., Lady Gaga, '
'and Tony Bennett. His playing moves easily between classical '
'repertoire, Broadway pits, and pop performances.</p><p>Leonard '
'Bernstein described <strong>Paul Woodiel</strong> as "a '
'first-class performer who combines spirituality with '
'intellect."A busy New York-based purveyor of violin and fiddle '
'music, his broad stylistic compass includes the dance fiddle '
'traditions of America and the British Isles, ragtime and jazz, '
'and the music of Charles Ives.\xa0Mr. Woodiel has presented '
'recitals at the 92nd St. Y, Wesleyan University, Caramoor, '
'Miller Theater, Yale University, and the New York Festival of '
'Song at Carnegie Hall, and has appeared as soloist at festivals '
'from Bard College to Moab, Utah<br/>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#23404b4a4f47634d465440424d42424d4f4a415142515a0d4c5144"><span '
'class="__cf_email__" '
'data-cfemail="1c7f747570785c72796b7f7d727d7d7270757e6e7d6e6532736e7b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/intergenerational-string-quartet-concert-208503" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-hvuueza6qjcxfyzgwlv2lrxnlgp8sfmtbul0sc8n4gc" '
'name="form_build_id" type="hidden" '
'value="form-HvUueZa6qjcxfyzgWLV2lRxnlGP8SfMTBuL0sC8n4Gc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e290848d9aa28c879581838c83838c8e8b809083909bcc8d9085">\n'
'<span class="__cf_email__" '
'data-cfemail="582a3e372018363d2f3b393639393634313a2a392a2176372a3f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217694>
{'event_url': 'https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217694',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Crochet Lily Pad: Take and Make Craft Pick Up for Ages 12 '
'to 19</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217694">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217696">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217698">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217700">\n'
' 08/26/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5670/lc_featured_image?alternative_text=photo%20of%20crocheted%20lily%20pads"><img '
'alt="photo of crocheted lily pads" class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/febb8e8d00267ae74a2fa0c00405ecfc.jpg" '
'width="384"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217694/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217694/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 19.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Swing by the library to pick up '
'the supplies for a make-at-home craft! Everything you need will '
"be in your kit, so it's perfect for a study break or long "
'weekend trip.\xa0</p><p>Note: This event is listed as a window '
'of time for pick-ups, there is no class or program associated '
'with this craft! You can pick up your kit starting at 5 PM until '
'the library closes. Kits that are not claimed, will be put out '
'for the general public. Thank you!\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/craft-take-and-make-craft-pick-ages-12-19-217694" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-mp1jimccdg4xka4bdz2xmpv8goan96mlhipmecceyo" '
'name="form_build_id" type="hidden" '
'value="form--mP1JIMCCDg4Xka4Bdz2XmPV8goaN96mlhIpmEccEyo"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#25484d5051514a654b405246444b44444b494c475744575c0b4a5742">\n'
'<span class="__cf_email__" '
'data-cfemail="0d6065787979624d63687a6e6c636c6c6361646f7f6c7f7423627f6a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221791/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221791/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221791/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here: <a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_5pJEUrpjTau2C3UoM3Dtwg%23%2fregistration&c=E,1,Wt80hAzFMzyAcqq10-RgtRASEvM3YznD1qqcRNxpvKL7dQ6CAPLEqzuBUc7VwsaCq7J86uH8grkSWnApiS5b1pKRWJSsikz0iRG2UuTt3yIA4GxvWqWeLK4,&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_5pJEUrpjTau2C3UoM3Dtwg#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#375c404e595952775952405456595656595b5e554556454e19584550">\n'
'<span class="__cf_email__" '
'data-cfemail="d1baa6a8bfbfb491bfb4a6b2b0bfb0b0bfbdb8b3a3b0a3a8ffbea3b6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:44 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217705>
{'event_url': 'https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217705',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Magic: The Gathering Meetup for ages 12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217704">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/magic-gathering-meetup-ages-12-18-217705">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217706">\n'
' 08/19/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5265/lc_featured_image?alternative_text=Magic%20the%20Gathering%20Logo%20over%20a%20digital%20painting%20of%20fantasy%20knights%20and%20creatures"><img '
'alt="Magic the Gathering Logo over a digital painting of fantasy '
'knights and creatures" class="img-fluid" height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/magic-the-gathering-header-1-314913123.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217705/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217705/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 6:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a friendly session '
'of Modern Casual Magic: The Gathering! Beginners and players of '
'any experience are more than welcome to join. Please bring your '
'own standard deck if possible!\xa0</p><p>The Library will '
'provide mats and dice. We also have a few standard decks '
'available if you do not have one. Please pre-register.\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/magic-gathering-meetup-ages-12-18-217705" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-58f6amxjpfwdhbeaqf-ynenhfv6wg5rxo2z4zgffrni" '
'name="form_build_id" type="hidden" '
'value="form-58F6amxjpFWdHBeAQF_yNenhFv6Wg5Rxo2Z4zgffrnI"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b3dedbc6c7c7dcf3ddd6c4d0d2ddd2d2dddfdad1c1d2c1ca9ddcc1d4">\n'
'<span class="__cf_email__" '
'data-cfemail="167b7e63626279567873617577787777787a7f746477646f38796471">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:44 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210790>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210790',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/16" '
'href="/events/week/2026/07/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/16" '
'href="/events/day/2026/07/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210790/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210790/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'16, 2026 @ 9:30am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#5e3d3637323a1e303b293d3f303f3f3032373c2c3f2c2770312c39"><span '
'class="__cf_email__" '
'data-cfemail="b6d5dedfdad2f6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210790" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-4skcgylgusbguw4-j6muzb-mw-u9tuvd-4ntxr1ucng" '
'name="form_build_id" type="hidden" '
'value="form-4SkCgYlguSbGUw4-J6Muzb_mW_U9tUvD-4NTXr1uCng"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#85e1e8e4f7f1ecebe0ffc5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2">\n'
'<span class="__cf_email__" '
'data-cfemail="90f4fdf1e2e4f9fef5ead0fef5e7f3f1fef1f1fefcf9f2e2f1e2e9beffe2f7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210788>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210788',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/02" '
'href="/events/week/2026/07/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/02" '
'href="/events/day/2026/07/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 2, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210788/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210788/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'2, 2026 @ 9:30am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#1b787372777f5b757e6c787a757a7a75777279697a69623574697c"><span '
'class="__cf_email__" '
'data-cfemail="482b2021242c08262d3f2b292629292624212a3a293a3166273a2f">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210788" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-drxxumb2y3ls967xdiev8srukvn-r4ldd2snxogz2o" '
'name="form_build_id" type="hidden" '
'value="form--dRxxUMB2Y3Ls967XdiEV8sRUkVn_r4lDd2sNXoGz2o"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9efaf3ffeceaf7f0fbe4def0fbe9fdfff0fffff0f2f7fcecffece7b0f1ecf9">\n'
'<span class="__cf_email__" '
'data-cfemail="cda9a0acbfb9a4a3a8b78da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219782>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219782',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219782/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219782/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#65060d0c0901250b001206040b04040b090c071704171c4b0a1702"><span '
'class="__cf_email__" '
'data-cfemail="cfaca7a6a3ab8fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219782" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-a9co-9hcla50mtbtrxeee68kbjjc4arhwnn4m9obihs" '
'name="form_build_id" type="hidden" '
'value="form-a9cO_9hCla50mtBtRxeeE68kbjjc4ARHWNN4M9oBIhs"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9deffbf2e5ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">\n'
'<span class="__cf_email__" '
'data-cfemail="addfcbc2d5edc3c8daceccc3ccccc3c1c4cfdfccdfd483c2dfca">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217931>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217931',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/16" '
'href="/events/week/2026/07/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/16" '
'href="/events/day/2026/07/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217931/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217931/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#62010a0b0e06220c071501030c03030c0e0b001003101b4c0d1005"><span '
'class="__cf_email__" '
'data-cfemail="52313a3b3e36123c372531333c33333c3e3b302033202b7c3d2035">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3-5s-storytime-217931" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-3u0mhylhwk1ig11mchv9paykywp-mtvdyasal9tfazq" '
'name="form_build_id" type="hidden" '
'value="form-3u0mHyLhWk1ig11mChv9PAyKyWP_MtVDYAsaL9TfAZQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5430393526203d3a312e143a312337353a35353a383d362635262d7a3b2633">\n'
'<span class="__cf_email__" '
'data-cfemail="7b1f161a090f12151e013b151e0c181a151a1a15171219091a09025514091c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gordon-korman-217896>
{'event_url': 'https://www.newcanaanlibrary.org/event/gordon-korman-217896',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gordon Korman Author Visit</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:30pm–7:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5765/lc_featured_image?alternative_text=Sleepless%20book%20cover%20"><img '
'alt="Sleepless book cover " class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/9781546126119.jpg" '
'width="319"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217896/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217896/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 5:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us to celebrate the launch '
'of <em>Sleepless </em>with author Gordon Korman! Get a sneak '
"preview of the book, learn about Gordon Korman's writing "
'process, and ask him questions. A book signing will follow.\xa0'
'</p><p><strong>Elm Street Books will be onsite selling books. '
'</strong><a '
'href="https://elmstreetbooks.com/event/2026-07-15/author-talk-childrens-author-gordon-korman"><strong>Preorder '
"Gordon Korman's books here.</strong></a><strong> We will "
'distribute signing line wristbands to adults at event check-in '
'the day of the event.\xa0</strong></p><p><strong>Please register '
'each person who will attend (adults as well as children).\xa0'
'</strong></p><p>\xa0</p><div class="align-left">\n'
'<div class="field-container"> <img alt="Gordon Korman author '
'photo" class="img-fluid" height="220" loading="lazy" '
'src="https://www.newcanaanlibrary.org/sites/default/files/2026-05/Gordon%20Korman%202023_credit%20Sonya%20Sones_0.jpg" '
'width="330"/>\n'
'</div>\n'
'</div>\n'
'<p><strong>Gordon Korman </strong>is the beloved author of over '
'one hundred novels for young readers, including hilarious '
'middle-grade classics such as the Macdonald Hall series, <em>I '
'Want to Go Home</em>, and <em>Slacker</em>. Born in Montreal, '
'Quebec, Gordon grew up in Thornhill, Ontario, and now lives '
'in\xa0<br/>New York with his family. Visit him online at <a '
'href="https://gordonkorman.com/">https://gordonkorman.com/</a>.</p><p><br/>\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#b6d5dedfdad2f6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1"><span '
'class="__cf_email__" '
'data-cfemail="bfdcd7d6d3dbffd1dac8dcded1deded1d3d6ddcddecdc691d0cdd8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/gordon-korman-217896" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-tkbw-xng0qj9hqlohc58ivpu6-yzxt0kua0h7arep8i" '
'name="form_build_id" type="hidden" '
'value="form-tkBw-xng0qj9hQlOhC58Ivpu6_yZxT0kua0H7ArEp8I"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#fc8e9a9384bc92998b9f9d929d9d9290959e8e9d8e85d2938e9b">\n'
'<span class="__cf_email__" '
'data-cfemail="3a485c55427a545f4d595b545b5b54565358485b48431455485d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Gordon Korman\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-3-4-217330>
{'event_url': 'https://www.newcanaanlibrary.org/event/pop-books-bog-life-grades-3-4-217330',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Pop-Up Books: Bog Life for Grades 3-4</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/15" '
'href="/events/week/2026/07/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/15" '
'href="/events/day/2026/07/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217330/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217330/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'15, 2026 @ 3:30pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 4th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn pop-up book mechanics and '
'paper engineering concepts at this pop-up book making class. \xa0'
'Our book will be bog life theme in keeping with our summer '
"reading. \xa0We will assemble our books and you'll have the "
'opportunity to customize your book pages as we build. For '
'students in grades 3-4 in Fall 2026.</p><p><em>Registration '
'opens June 1 at 8am.</em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/pop-books-bog-life-grades-3-4-217330" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-z3mudde1da9to7lgnptmjv3j-s1fe-xkqraa1se7cms" '
'name="form_build_id" type="hidden" '
'value="form-Z3MUDDe1DA9tO7Lgnptmjv3J-S1Fe_Xkqraa1se7cMs"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5a36373336363f281a343f2d393b343b3b34363338283b28237435283d">\n'
'<span class="__cf_email__" '
'data-cfemail="8de1e0e4e1e1e8ffcde3e8faeeece3ecece3e1e4efffecfff4a3e2ffea">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:45 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:45 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:45 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203734>
{'event_url': 'https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203734',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Sewing Machine First Time for Ages 8-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:00pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203733">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/sewing-machine-first-time-ages-8-12-203734">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203735">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203734/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203734/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for an introduction to '
'sewing machines. \xa0This class is intended for absolute '
'beginners who have never used a sewing machine before between '
'the ages of 8 and 12! \xa0Instructor LeeAnn will walk students '
"through sewing machine safety, setup and basic use. We'll put "
'our knowledge to use with a beginner friendly project.\xa0\xa0'
'</p><p><em>Registration opens May 1 at 8am. <strong>This '
'workshop will be offered three times (June 22, July 9, and '
'August 4) \xa0this summer to introduce as many kids as possible '
'to the sewing machine. \xa0Please only register for one '
'session.\xa0</strong></em></p><p><strong>These sessions are made '
'possible by a generous grant from the New Canaan Artisans.\xa0'
'</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#54373c3d3830143a312337353a35353a383d362635262d7a3b2633"><span '
'class="__cf_email__" '
'data-cfemail="e88b8081848ca8868d9f8b898689898684818a9a899a91c6879a8f">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/sewing-machine-first-time-ages-8-12-203734" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-7ft3la-jtokvvt4bf9eew-zzfoybmkq-syq8mozting" '
'name="form_build_id" type="hidden" '
'value="form-7fT3lA-jToKVvt4Bf9eew_ZzfoYBMkQ-SyQ8MOZTINg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d3bfbebabfbfb6a193bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">\n'
'<span class="__cf_email__" '
'data-cfemail="84e8e9ede8e8e1f6c4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/movie-screening-jaws-196800> (referer: https://www.newcanaanlibrary.org/events/list?page=2)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/bell-pitcher-bug-catcher-craft-ages-6-7-199599> (referer: https://www.newcanaanlibrary.org/events/list?page=3)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216556> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=6> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/emily-meng-art-216553> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/canva-ai-224703> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224495> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217708> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/art-camp-teens-217688> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219107> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225970> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217932> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223493> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10305
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/movie-screening-jaws-196800>
{'event_url': 'https://www.newcanaanlibrary.org/event/movie-screening-jaws-196800',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Movie: Jaws</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/01" '
'href="/events/week/2026/07/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/01" '
'href="/events/day/2026/07/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5185/lc_featured_image?alternative_text=This%20image%20is%20the%20movie%20poster%20for%20Jaws"><img '
'alt="This image is the movie poster for Jaws" class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/jaws%20movie%20poster.jpg" '
'width="322"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/196800/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/196800/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'1, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>"<em>We\'re gonna need a bigger '
'boat.</em>"</p><p>Join us at the Library for a screening of <a '
'href="https://www.youtube.com/watch?v=U1fu_sA7XhE"><em>Jaws '
'</em></a>(1975). \xa0</p><p>Directed by Steven Spielberg, this '
'iconic movie will make you scared to go into the water. When a '
'rogue shark terrorizes a small New England town just days before '
"the Fourth of July, it's up to the chief of police, a marine "
'biologist, and a grizzled fisherman to hunt the beast '
'down.</p><p>\xa0</p><p><em><strong>This movie is Rated PG by the '
'</strong></em><a '
'href="https://www.filmratings.com/"><em><strong>MPAA</strong></em></a><em><strong>.</strong></em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/movie-screening-jaws-196800" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-yoav5l7ar2rkrhv2stcicsvr2oyyktsy52cuyjkdab4" '
'name="form_build_id" type="hidden" '
'value="form-yoaV5L7AR2rKRhV2stCicsVR2OyyKtSy52cUyJkDaB4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#badbd9d6dbc8d1fad4dfcdd9dbd4dbdbd4d6d3d8c8dbc8c394d5c8dd">\n'
'<span class="__cf_email__" '
'data-cfemail="d7b6b4bbb6a5bc97b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/bell-pitcher-bug-catcher-craft-ages-6-7-199599>
{'event_url': 'https://www.newcanaanlibrary.org/event/bell-pitcher-bug-catcher-craft-ages-6-7-199599',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Bell Pitcher Bug Catcher Craft for Ages 6-7</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/09" '
'href="/events/week/2026/07/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/09" '
'href="/events/day/2026/07/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5245/lc_featured_image?alternative_text=Assorted%20crafting%20supplies"><img '
'alt="Assorted crafting supplies" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/Crafting%20%281%29_1.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199599/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199599/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 3:30pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 6 to 7.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 6 and 7 will join '
'Miss Dajana to learn about Bell Pitcher plants and then make '
'their own bell pitcher plant craft. How many flies will your '
'bell pitcher catch?</p><p><strong>This class is intended for '
'children ages 6 & 7 years old.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#f19299989d95b19f948692909f90909f9d989383908388df9e8396"><span '
'class="__cf_email__" '
'data-cfemail="b2d1dadbded6f2dcd7c5d1d3dcd3d3dcdedbd0c0d3c0cb9cddc0d5">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/bell-pitcher-bug-catcher-craft-ages-6-7-199599" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-jyfiwbf56-q9b-jax7aogf2-ceefvmi6smafx4sids4" '
'name="form_build_id" type="hidden" '
'value="form-JyFIWBf56_Q9B-jaX7Aogf2_ceEfVMi6Smafx4SiDS4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b4d0d9d5c6c0dddad1cef4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">\n'
'<span class="__cf_email__" '
'data-cfemail="c1a5aca0b3b5a8afa4bb81afa4b6a2a0afa0a0afada8a3b3a0b3b8efaeb3a6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216556>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216556',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Drawing Class for Incoming Grades 4-5: Fantasy '
'Landscape</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/25" '
'href="/events/week/2026/07/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/25" '
'href="/events/day/2026/07/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216554">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216555">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216556">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216556/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216556/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'25, 2026 @ 11:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and bring '
'your imagination to life? Join a few NCHS art students for an '
'engaging, hands-on class! Students will design and draw their '
'own fantasy landscapes, including kingdoms, enchanted forests, '
'and candy lands, while learning the basics of perspective and '
'composition. Materials will be provided.</p><p>This program is '
'intended for students entering grades 4-5 in Fall 2026.\xa0'
'</p><p>These classes are organized by Emily Meng, a rising high '
'school sophomore and recipient of multiple Scholastic Art '
'Awards, including the CAEA/Arnini Best in Drawing award, as well '
'as additional honors in national and international competitions. '
'Emily has a strong background in drawing, painting, crafting, '
'and mural work, and she is passionate about sharing creative, '
'hands-on experiences with young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#9cfff4f5f0f8dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb"><span '
'class="__cf_email__" '
'data-cfemail="117279787d75517f746672707f70707f7d7873637063683f7e6376">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216556" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-podlqcpnyzwucg6pyo2nljny2o2xu6q41wvs1re-fz8" '
'name="form_build_id" type="hidden" '
'value="form-PodlqCPNYZwUCg6PYo2NLJNy2o2XU6q41Wvs1rE-fZ8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9ae8fcf5e2daf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd">\n'
'<span class="__cf_email__" '
'data-cfemail="6113070e19210f041602000f00000f0d0803130013184f0e1306">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/emily-meng-art-216553>
{'event_url': 'https://www.newcanaanlibrary.org/event/emily-meng-art-216553',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Art Class for Incoming Grades 2-3: Blow Painting with '
'Straws</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/24" '
'href="/events/week/2026/07/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/24" '
'href="/events/day/2026/07/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216551">\n'
' 07/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/emily-meng-art-216552">\n'
' 07/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/emily-meng-art-216553">\n'
' 07/24/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216553/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/216553/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 2nd Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Ready to get creative and bring '
'your imagination to life? Join a few NCHS art students for an '
'engaging, hands-on art class! Students will explore physics and '
'experiment with blowing through straws to create detailed '
'abstract artwork, ranging from landscapes to imaginative '
'monsters. Materials will be provided, and students are '
'encouraged to wear clothing that may get messy.</p><p>This '
'program is intended for students entering grades 2-3 in Fall '
'2026.\xa0</p><p>These classes are organized by Emily Meng, a '
'rising high school sophomore and recipient of multiple '
'Scholastic Art Awards, including the CAEA/Arnini Best in Drawing '
'award, as well as additional honors in national and '
'international competitions. Emily has a strong background in '
'drawing, painting, crafting, and mural work, and she is '
'passionate about sharing creative, hands-on experiences with '
'young students.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#14777c7d7870547a716377757a75757a787d766675666d3a7b6673"><span '
'class="__cf_email__" '
'data-cfemail="fa999293969eba949f8d999b949b9b94969398889b8883d495889d">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/emily-meng-art-216553" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-j6wyui2fdtibvpcjldteufyln3sov4349gp2f-r1oq" '
'name="form_build_id" type="hidden" '
'value="form-j6WYuI2fDtibvPCJlDTeUFYlN3sOv4349gp2f_-r1oQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cfbda9a0b78fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">\n'
'<span class="__cf_email__" '
'data-cfemail="5d2f3b32251d33382a3e3c333c3c3331343f2f3c2f2473322f3a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/canva-ai-224703>
{'event_url': 'https://www.newcanaanlibrary.org/event/canva-ai-224703',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Canva + AI</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/24" '
'href="/events/week/2026/07/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/24" '
'href="/events/day/2026/07/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, July 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–3:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224703/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224703/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Canva is a free online tool that '
'makes it easy to create professional or fun graphics for social '
'media, posters, flyers and more.\xa0With Canva’s suite of built '
'in AI tools, it is now easier than ever to create, share, and '
'design! In this class, you’ll learn how to use Canva AI to '
'create images, templates, and documents, along with tips and '
'tricks to get the most out of these tools.\xa0'
'</p><p><strong>Note:</strong> <strong>While free users of Canva '
'can use some Canva AI tools, access to most of Canva AI is '
'restricted or blocked after a certain amount of use unless the '
'user purchases a subscription.\xa0</strong>\xa0\xa0\xa0'
'</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/canva-ai-224703" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-eh6mrwjyevrlmfesoipq2r2uirjon8yqmjs7wekulas" '
'name="form_build_id" type="hidden" '
'value="form-eh6mrWjyEvrlmFEsOIPq2R2uIRjOn8YqMJs7WEKuLAs"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' James\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#fb91978e9f82bb959e8c989a959a9a95979299899a8982d594899c">\n'
'<span class="__cf_email__" '
'data-cfemail="e48e8891809da48a819387858a85858a888d869685969dca8b9683">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224495>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224495',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Embroidery for Intermediate Sewers</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224493">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224494">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-embroidery-intermediate-sewers-224495">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224496">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5797/lc_featured_image?alternative_text=Two%20embroidered%20blue%20hummingbirds%20face%20each%20other.%20There%20is%20delicate%20filigree%20surrounding%20them."><img '
'alt="Two embroidered blue hummingbirds face each other. There is '
'delicate filigree surrounding them." class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/framed%20embroidery_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224495/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224495/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 1:00pm.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/copy-embroidery-intermediate-sewers-224493">first '
'event</a> to register.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this series, sewers will use '
'a number of familiar stitch and knot techniques to create a '
'beautiful piece of art. In the final session, you will learn a '
'basic DIY framing technique. <em><strong>You must bring your own '
'5x7 frame.</strong></em> Each participant will take home a '
'lovely piece of art and a new set of skills.\xa0'
'</p><p><strong>Please only sign up if you can attend all '
'sessions. Due to the nature of the class, your project will not '
'be completed in one day.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#3c5352505552594e595a7c52594b5f5d525d5d5250555e4e5d4e4512534e5b"><span '
'class="__cf_email__" '
'data-cfemail="c5aaaba9acaba0b7a0a385aba0b2a6a4aba4a4aba9aca7b7a4b7bcebaab7a2">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b4d5d7d8d5c6dff4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">\n'
'<span class="__cf_email__" '
'data-cfemail="d8b9bbb4b9aab398b6bdafbbb9b6b9b9b6b4b1baaab9aaa1f6b7aabf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217708>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217708',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Frog Days of Summer: Dungeons and Dragons Oneshot for ages '
'12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/25" '
'href="/events/week/2026/07/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/25" '
'href="/events/day/2026/07/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 12:15pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5671/lc_featured_image?alternative_text=Digital%20illustration%20of%20fantasy%20frogs%20with%20weapons"><img '
'alt="Digital illustration of fantasy frogs with weapons" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20121656.png" '
'width="431"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217708/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217708/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'25, 2026 @ 11:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Your party explores a hot summer '
'bog. The nefarious frogfolk bewitched the seasons and stalled '
'summer out far past its due. Will the party restore order to '
'nature or will they meet their doom in a muddy '
'grave?</p><p>Newcomers to D&D are welcome, we provide a '
'characters sheet as well as dice and minis! We will take a break '
'for a snack between 2:15 and 2:45. Pre-registration is '
'required.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-copy-dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217708" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ozrkscil1wkwhxolhytciefr9lknw7g0-wd3mhis-g" '
'name="form_build_id" type="hidden" '
'value="form-_OzrkSCiL1wKWHXolhYtCieFR9lkNW7G0_Wd3Mhis-g"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e78a8f92939388a78982908486898686898b8e859586959ec9889580">\n'
'<span class="__cf_email__" '
'data-cfemail="6a07021f1e1e052a040f1d090b040b0b04060308180b18134405180d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/art-camp-teens-217688>
{'event_url': 'https://www.newcanaanlibrary.org/event/art-camp-teens-217688',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Polymer Clay - Art Camp for Teens</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:30pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217686">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217687">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/art-camp-teens-217688">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5675/lc_featured_image?alternative_text=Photo%20of%20cute%20magnets%20made%20using%20polymer%20clay"><img '
'alt="Photo of cute magnets made using polymer clay" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/d617150631a780543cd9c83207756c8a.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217688/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217688/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'22, 2026 @ 4:59pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a 3 day workshop and '
"learn the basics of polymer clay! On day 1 we'll talk about what "
'the clay is and how it works before learning to make an easy '
"starter project, then on days 2 and 3 we'll apply that knowledge "
'to make a colorful, mini work of art!\xa0</p><p><strong>Please '
'only register if you are able to attend all 3 days! '
'Pre-registration required.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a6cbced3d2d2c9e6c8c3d1c5c7c8c7c7c8cacfc4d4c7d4df88c9d4c1">\n'
'<span class="__cf_email__" '
'data-cfemail="9df0f5e8e9e9f2ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219107>
{'event_url': 'https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219107',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Math Art for Grades 1-2</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219104">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219105">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219106">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/math-art-grades-1-2-219107">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219107/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219107/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a href="/event/math-art-grades-1-2-219104">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 2nd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children entering grades 1 and '
'2, join Miss Rebecca for <strong>4 days\xa0</strong>of hands-on '
"art projects that will level up your math skills! Each day's "
'project will incorporate math in a fun, interactive way that '
'gets creativity flowing.\xa0<strong>This is an ongoing club. '
'Please plan to attend for all 4 days (3:30 p.m. July 20 through '
'23).</strong></p><p>This program is intended for children '
'entering grades 1-2 in Fall 2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#a7c4cfcecbc3e7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0"><span '
'class="__cf_email__" '
'data-cfemail="4e2d2627222a0e202b392d2f202f2f2022272c3c2f3c3760213c29">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#661400091e260803110507080707080a0f041407141f48091401">\n'
'<span class="__cf_email__" '
'data-cfemail="186a7e776058767d6f7b797679797674717a6a796a6136776a7f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:46 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225970>
{'event_url': 'https://www.newcanaanlibrary.org/event/intermediate-italian-conversation-class-225970',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Intermediate Italian Conversation Class</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 7:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/intermediate-italian-conversation-class-225969">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/intermediate-italian-conversation-class-225970">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5808/lc_featured_image?alternative_text=italian%20conversation%20class%20image"><img '
'alt="italian conversation class image" class="img-fluid" '
'height="294" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-06/italian_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225970/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/225970/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'23, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Benvenuti! If you are looking to '
'move beyond textbook phrases and truly embrace <em>la bella '
'lingua</em>, join us for this engaging conversation class. '
'Designed for intermediate learners, these sessions focus on the '
'rhythm, culture, and authentic spirit of Italian life.</p><p>\xa0'
'</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/intermediate-italian-conversation-class-225970" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-jbsyk8gugim73at5wzwwy1e-zepiynyst4h4iyv7bgq" '
'name="form_build_id" type="hidden" '
'value="form-JBsYK8gugiM73AT5wzwwy1E_ZEPIynYst4H4iYV7BGQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#45312e203c052b203226242b24242b292c273724373c6b2a3722">\n'
'<span class="__cf_email__" '
'data-cfemail="eb9f808e92ab858e9c888a858a8a85878289998a9992c584998c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' David Fischer\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-06-16 04:20:46 [canaan_library] 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-06-16 04:20:46 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217932>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217932',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217932/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217932/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#9af9f2f3f6fedaf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd"><span '
'class="__cf_email__" '
'data-cfemail="402328292c24002e253723212e21212e2c2922322132396e2f3227">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3-5s-storytime-217932" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-idl-c9reopqcny-ij1budskuewjup-4ospqcmgjlh4" '
'name="form_build_id" type="hidden" '
'value="form-IdL_C9rEopqcny_ij1budSkuEwjUP_-4ospQcMGJLH4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#77131a1605031e19120d371912001416191616191b1e150516050e59180510">\n'
'<span class="__cf_email__" '
'data-cfemail="36525b5744425f58534c765853415557585757585a5f544457444f18594451">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:46 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223493>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223493',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/25" '
'href="/events/week/2026/07/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/25" '
'href="/events/day/2026/07/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223493/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223493/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223493/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#6c0302000502091e090a2c02091b0f0d020d0d0200050e1e0d1e1542031e0b"><span '
'class="__cf_email__" '
'data-cfemail="aac5c4c6c3c4cfd8cfcceac4cfddc9cbc4cbcbc4c6c3c8d8cbd8d384c5d8cd">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#036b606a6e6a6d6c436d667460626d62626d6f6a617162717a2d6c7164">\n'
'<span class="__cf_email__" '
'data-cfemail="325a515b5f5b5c5d725c574551535c53535c5e5b504053404b1c5d4055">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219106> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/relief-printmaking-workshop-226877> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/art-camp-teens-217686> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/art-camp-teens-217687> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219783> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210791> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219760> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168843> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221988> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-edge-book-group-181003> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223560> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226719> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180885> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219105> (referer: https://www.newcanaanlibrary.org/events/list?page=5)
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219106>
{'event_url': 'https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219106',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Math Art for Grades 1-2</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/22" '
'href="/events/week/2026/07/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/22" '
'href="/events/day/2026/07/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219104">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219105">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/math-art-grades-1-2-219106">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219107">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219106/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219106/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a href="/event/math-art-grades-1-2-219104">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 2nd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children entering grades 1 and '
'2, join Miss Rebecca for <strong>4 days\xa0</strong>of hands-on '
"art projects that will level up your math skills! Each day's "
'project will incorporate math in a fun, interactive way that '
'gets creativity flowing.\xa0<strong>This is an ongoing club. '
'Please plan to attend for all 4 days (3:30 p.m. July 20 through '
'23).</strong></p><p>This program is intended for children '
'entering grades 1-2 in Fall 2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#caa9a2a3a6ae8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad"><span '
'class="__cf_email__" '
'data-cfemail="9efdf6f7f2fadef0fbe9fdfff0fffff0f2f7fcecffece7b0f1ecf9">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e193878e99a18f849682808f80808f8d888393809398cf8e9386">\n'
'<span class="__cf_email__" '
'data-cfemail="0b796d64734b656e7c686a656a6a65676269796a79722564796c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/relief-printmaking-workshop-226877>
{'event_url': 'https://www.newcanaanlibrary.org/event/relief-printmaking-workshop-226877',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Relief Printmaking Workshop</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/22" '
'href="/events/week/2026/07/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/22" '
'href="/events/day/2026/07/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/4160/lc_featured_image?alternative_text=relief%20print%20"><img '
'alt="relief print " class="img-fluid" height="325" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2025-04/Foam-Relief-Prints-example.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226877/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226877/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this relief printmaking '
"class, you'll learn the basics of creating prints by carving "
'images into blocks (such as linoleum or wood) and transferring '
'ink from the raised areas onto paper, exploring both traditional '
'and unconventional materials.\xa0<br/>Participants will create '
'their own relief block and print a run of their own design that '
'can be printed many times and inked in various ways.\xa0'
'</p><p>\xa0'
'</p><h3>\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/relief-printmaking-workshop-226877" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-21jnfolkknl-l40fkmaiokndqgfad5afddvkbvrimas" '
'name="form_build_id" type="hidden" '
'value="form-21jnFolkkNL-L40fkMAIOKNdQgfAd5aFddVkbVRiMas"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d0a4bbb5a990beb5a7b3b1beb1b1bebcb9b2a2b1a2a9febfa2b7">\n'
'<span class="__cf_email__" '
'data-cfemail="76021d130f361813011517181717181a1f140417040f58190411">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Evelyn Harvey \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/art-camp-teens-217686>
{'event_url': 'https://www.newcanaanlibrary.org/event/art-camp-teens-217686',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Polymer Clay - Art Camp for Teens</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:30pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/art-camp-teens-217686">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217687">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217688">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5675/lc_featured_image?alternative_text=Photo%20of%20cute%20magnets%20made%20using%20polymer%20clay"><img '
'alt="Photo of cute magnets made using polymer clay" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/d617150631a780543cd9c83207756c8a.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217686/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217686/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a 3 day workshop and '
"learn the basics of polymer clay! On day 1 we'll talk about what "
'the clay is and how it works before learning to make an easy '
"starter project, then on days 2 and 3 we'll apply that knowledge "
'to make a colorful, mini work of art!\xa0</p><p><strong>Please '
'only register if you are able to attend all 3 days! '
'Pre-registration required.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/art-camp-teens-217686" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-y58exuezcyvjtqlqvuqjai9at5irrd1kzibttknj4zy" '
'name="form_build_id" type="hidden" '
'value="form-y58ExUezCyvJTQlqVuqJai9At5irRD1kZIbTTkNJ4ZY"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3c5154494848537c52594b5f5d525d5d5250555e4e5d4e4512534e5b">\n'
'<span class="__cf_email__" '
'data-cfemail="b4d9dcc1c0c0dbf4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/art-camp-teens-217687>
{'event_url': 'https://www.newcanaanlibrary.org/event/art-camp-teens-217687',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Polymer Clay - Art Camp for Teens</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/22" '
'href="/events/week/2026/07/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/22" '
'href="/events/day/2026/07/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:30pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217686">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/art-camp-teens-217687">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/art-camp-teens-217688">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5675/lc_featured_image?alternative_text=Photo%20of%20cute%20magnets%20made%20using%20polymer%20clay"><img '
'alt="Photo of cute magnets made using polymer clay" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/d617150631a780543cd9c83207756c8a.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217687/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217687/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'21, 2026 @ 4:59pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a 3 day workshop and '
"learn the basics of polymer clay! On day 1 we'll talk about what "
'the clay is and how it works before learning to make an easy '
"starter project, then on days 2 and 3 we'll apply that knowledge "
'to make a colorful, mini work of art!\xa0</p><p><strong>Please '
'only register if you are able to attend all 3 days! '
'Pre-registration required.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d6bbbea3a2a2b996b8b3a1b5b7b8b7b7b8babfb4a4b7a4aff8b9a4b1">\n'
'<span class="__cf_email__" '
'data-cfemail="c5a8adb0b1b1aa85aba0b2a6a4aba4a4aba9aca7b7a4b7bcebaab7a2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219783>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219783',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/22" '
'href="/events/week/2026/07/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/22" '
'href="/events/day/2026/07/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219783/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219783/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'22, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#0d6e656461694d63687a6e6c636c6c6361646f7f6c7f7423627f6a"><span '
'class="__cf_email__" '
'data-cfemail="d3b0bbbabfb793bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219783" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-fdpfifd7s59ene0eyudwshejubhwow-x-p3angej0vg" '
'name="form_build_id" type="hidden" '
'value="form-fdPfIfd7s59Ene0eyUdwShEjUbhWoW_X-P3AngEJ0Vg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#067460697e466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="fa889c9582ba949f8d999b949b9b94969398889b8883d495889d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210791>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210791',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/23" '
'href="/events/week/2026/07/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/23" '
'href="/events/day/2026/07/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210791/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210791/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'23, 2026 @ 9:30am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#b3d0dbdadfd7f3ddd6c4d0d2ddd2d2dddfdad1c1d2c1ca9ddcc1d4"><span '
'class="__cf_email__" '
'data-cfemail="85e6edece9e1c5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210791" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-r41lvgzdjslofzv4emwre6blceeylzavik7lr-bmvwc" '
'name="form_build_id" type="hidden" '
'value="form-r41LVgZDJslofZv4EMWRe6blceeYLZavIK7lr-BMVWc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#21454c405355484f445b614f445642404f40404f4d4843534053580f4e5346">\n'
'<span class="__cf_email__" '
'data-cfemail="a1c5ccc0d3d5c8cfc4dbe1cfc4d6c2c0cfc0c0cfcdc8c3d3c0d3d88fced3c6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219760>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219760',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/22" '
'href="/events/week/2026/07/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/22" '
'href="/events/day/2026/07/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219760/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219760/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'22, 2026 @ 9:15am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#f09398999c94b09e958793919e91919e9c999282918289de9f8297"><span '
'class="__cf_email__" '
'data-cfemail="d7b4bfbebbb397b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219760" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-f-dw2g1sajl-tyygg-iuq6oubvqxk-04u2banzcmlw" '
'name="form_build_id" type="hidden" '
'value="form--f_DW2G1SAJL_TyYGg-Iuq6oubvqxk_04U2BAnZcMLw"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3341555c4b735d564450525d52525d5f5a514152414a1d5c4154">\n'
'<span class="__cf_email__" '
'data-cfemail="661400091e260803110507080707080a0f041407141f48091401">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:47 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:47 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168843>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168843',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168843/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168843/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168843/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#f2919a9b9e96b29c978591939c93939c9e9b908093808bdc9d8095"><span '
'class="__cf_email__" '
'data-cfemail="cdaea5a4a1a98da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7103171e09311f140612101f10101f1d1813031003085f1e0316">\n'
'<span class="__cf_email__" '
'data-cfemail="2153474e59614f445642404f40404f4d4843534053580f4e5346">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:47 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221988>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221988',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221988/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221988/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'21, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#abc4c5c7c2c5ced9cecdebc5cedcc8cac5cacac5c7c2c9d9cad9d285c4d9cc"><span '
'class="__cf_email__" '
'data-cfemail="d9b6b7b5b0b7bcabbcbf99b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221988" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-xwkacbq2k67u9dnmuratkmqbtd76txe4ffw24hhcbrg" '
'name="form_build_id" type="hidden" '
'value="form-XwkAcbq2k67U9DNMuRAtkMQbtd76TXE4FFw24HHCbRg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3d495658447d53584a5e5c535c5c5351545f4f5c4f4413524f5a">\n'
'<span class="__cf_email__" '
'data-cfemail="24504f415d644a415347454a45454a484d465645565d0a4b5643">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-edge-book-group-181003>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-edge-book-group-181003',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Women on the Edge Book Group</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/20" '
'href="/events/week/2026/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/20" '
'href="/events/day/2026/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5774/lc_featured_image?alternative_text=cover%20of%20the%20compound"><img '
'alt="cover of the compound" class="img-fluid" height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/The%20Compound.jpg" '
'width="158"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/181003/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/181003/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'20, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>This group reads books of all '
'genres written by women with an emphasis\xa0on\xa0diverse, edgy, '
'and\xa0emerging\xa0authors.</p><p>This month, we are reading '
'<em><strong>The Compound </strong></em>by Aisling '
'Rawle.</p><p>You can pick up copies of the book from the hold '
'shelf.\xa0<em>Please allow time for books to get in as we borrow '
'copies from other libraries.</em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/women-edge-book-group-181003" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-3ao-t4kwmc61ryl-7-sqoboi4tvwcda9kbmxq06apka" '
'name="form_build_id" type="hidden" '
'value="form-3Ao-t4kwMC61ryL_7_sqObOi4tvWcda9kbmXq06apkA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7d160a041313183d13180a1e1c131c1c1311141f0f1c0f0453120f1a">\n'
'<span class="__cf_email__" '
'data-cfemail="6308141a0d0d06230d061400020d02020d0f0a011102111a4d0c1104">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 9362
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223560>
{'event_url': 'https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223560',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>BYOB (Bring Your Own Book) Club for Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Bartlett Terrace\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 12:30pm–1:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223560/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223560/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'21, 2026 @ 12:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Want to read more this summer? '
'Looking for ways to gain more tickets to win our Summer Reading '
'Grand Prize? Join our Reference Librarians at our BYOB (Bring '
'Your Own Book) club! The rules are simple: bring exactly one '
'book you’ve recently read, an old favorite, or a hidden gem, and '
'give us a quick, spoiler-free pitch on why it’s worth a look (or '
'not). \xa0It’s the perfect, low-pressure way to chat about '
'books, meet fellow readers, and leave with a list of new '
'recommendations.</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/byob-bring-your-own-book-club-adults-223560" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-mzj44tkq4c3a-u4-emrotrfefkfcacsjclaoeuhh3zk" '
'name="form_build_id" type="hidden" '
'value="form-MZj44TkQ4C3A_U4-emrOtRFEfKfcaCSjcLaOeuhh3Zk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' James\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1872746d7c6158767d6f7b797679797674717a6a796a6136776a7f">\n'
'<span class="__cf_email__" '
'data-cfemail="4822243d2c3108262d3f2b292629292624212a3a293a3166273a2f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226719>
{'event_url': 'https://www.newcanaanlibrary.org/event/introduction-watercolor-painting-3-session-series-226719',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Introduction to Watercolor Painting: 3 session '
'series</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226717">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/introduction-watercolor-painting-3-session-series-226718">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/introduction-watercolor-painting-3-session-series-226719">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5190/lc_featured_image?alternative_text=image%20of%20watercolor%20brushes%20and%20paint%20"><img '
'alt="image of watercolor brushes and paint " class="img-fluid" '
'height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/240_F_358142390_ef2xlLgAHBkKQ9lR3smfYvRPvSzpVwO0.jpg" '
'width="435"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226719/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226719/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/introduction-watercolor-painting-3-session-series-226717">first '
'event</a> to register.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>Please note this course '
'is for NEW STUDENTS who did not take the February or APRIL 2026 '
'course.</strong></p><p>In this three-session workshop series, '
'participants will explore the fundamentals of watercolor '
'painting in a supportive, beginner environment. The class will '
'cover basic color mixing and blending techniques, expressive '
'mark-making, and an introduction to the unique qualities of '
'watercolor as a medium.</p><p>Individual feedback will be '
'provided throughout each session, with opportunities for group '
'discussion and shared learning. All materials are '
'supplied.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#15617e706c557b706276747b74747b797c776774676c3b7a6772">\n'
'<span class="__cf_email__" '
'data-cfemail="3b4f505e427b555e4c585a555a5a55575259495a49421554495c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' Evelyn Harvey \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180885>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180885',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180885/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180885/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180885/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cea1a0a2a7a0abbcaba88ea0abb9adafa0afafa0a2a7acbcafbcb7e0a1bca9">\n'
'<span class="__cf_email__" '
'data-cfemail="f49b9a989d9a91869192b49a918397959a95959a989d968695868dda9b8693">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219105>
{'event_url': 'https://www.newcanaanlibrary.org/event/math-art-grades-1-2-219105',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Math Art for Grades 1-2</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/21" '
'href="/events/week/2026/07/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/21" '
'href="/events/day/2026/07/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219104">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/math-art-grades-1-2-219105">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219106">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/math-art-grades-1-2-219107">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219105/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219105/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a href="/event/math-art-grades-1-2-219104">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 2nd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children entering grades 1 and '
'2, join Miss Rebecca for <strong>4 days\xa0</strong>of hands-on '
"art projects that will level up your math skills! Each day's "
'project will incorporate math in a fun, interactive way that '
'gets creativity flowing.\xa0<strong>This is an ongoing club. '
'Please plan to attend for all 4 days (3:30 p.m. July 20 through '
'23).</strong></p><p>This program is intended for children '
'entering grades 1-2 in Fall 2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#43202b2a2f27032d263420222d22222d2f2a213122313a6d2c3124"><span '
'class="__cf_email__" '
'data-cfemail="66050e0f0a02260803110507080707080a0f041407141f48091401">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4331252c3b032d263420222d22222d2f2a213122313a6d2c3124">\n'
'<span class="__cf_email__" '
'data-cfemail="87f5e1e8ffc7e9e2f0e4e6e9e6e6e9ebeee5f5e6f5fea9e8f5e0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180886> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/feed-frog-craft-ages-4-6-199471> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224496> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218090> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210792> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=7> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-valentines-day-sugar-cookie-class-grades-k-2-202743> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217696> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217933> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219761> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219784> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/cooking-class-ages-3-5-202738> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180886>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180886',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180886/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180886/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180886/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#deb1b0b2b7b0bbacbbb89eb0bba9bdbfb0bfbfb0b2b7bcacbfaca7f0b1acb9">\n'
'<span class="__cf_email__" '
'data-cfemail="4e21202227202b3c2b280e202b392d2f202f2f2022272c3c2f3c3760213c29">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/feed-frog-craft-ages-4-6-199471>
{'event_url': 'https://www.newcanaanlibrary.org/event/feed-frog-craft-ages-4-6-199471',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Feed the Frog Craft for Ages 4-6</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/30" '
'href="/events/week/2026/07/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/30" '
'href="/events/day/2026/07/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5240/lc_featured_image?alternative_text=Assorted%20crafting%20supplies"><img '
'alt="Assorted crafting supplies" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/Crafting%20%281%29_0.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199471/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199471/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 4 to 6.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Dajana to create a fun '
'frog craft. How many flies will your frog catch? Please have '
'your child wear a smock or clothes they can get paint on.\xa0'
'</p><p><strong>This class is intended for children ages 4-6 '
'years old.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#4c2f242520280c22293b2f2d222d2d2220252e3e2d3e3562233e2b"><span '
'class="__cf_email__" '
'data-cfemail="1f7c7776737b5f717a687c7e717e7e7173767d6d7e6d6631706d78">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/feed-frog-craft-ages-4-6-199471" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-37jck9i9-jq4brgcl5cidhfpytyuwk077dt1r36hli8" '
'name="form_build_id" type="hidden" '
'value="form-37JcK9i9_JQ4BrGcl5ciDhFpyTYuwK077Dt1R36HLi8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d4b0b9b5a6a0bdbab1ae94bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">\n'
'<span class="__cf_email__" '
'data-cfemail="385c55594a4c51565d4278565d4f5b595659595654515a4a594a4116574a5f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224496>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-embroidery-intermediate-sewers-224496',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Embroidery for Intermediate Sewers</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/30" '
'href="/events/week/2026/07/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/30" '
'href="/events/day/2026/07/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224493">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224494">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-embroidery-intermediate-sewers-224495">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-embroidery-intermediate-sewers-224496">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5797/lc_featured_image?alternative_text=Two%20embroidered%20blue%20hummingbirds%20face%20each%20other.%20There%20is%20delicate%20filigree%20surrounding%20them."><img '
'alt="Two embroidered blue hummingbirds face each other. There is '
'delicate filigree surrounding them." class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/framed%20embroidery_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224496/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/224496/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'9, 2026 @ 1:00pm.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/copy-embroidery-intermediate-sewers-224493">first '
'event</a> to register.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>In this series, sewers will use '
'a number of familiar stitch and knot techniques to create a '
'beautiful piece of art. In the final session, you will learn a '
'basic DIY framing technique. <em><strong>You must bring your own '
'5x7 frame.</strong></em> Each participant will take home a '
'lovely piece of art and a new set of skills.\xa0'
'</p><p><strong>Please only sign up if you can attend all '
'sessions. Due to the nature of the class, your project will not '
'be completed in one day.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#e689888a8f8883948380a68883918587888787888a8f849487949fc8899481"><span '
'class="__cf_email__" '
'data-cfemail="dcb3b2b0b5b2b9aeb9ba9cb2b9abbfbdb2bdbdb2b0b5beaebdaea5f2b3aebb">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#19787a75786b7259777c6e7a787778787775707b6b786b6037766b7e">\n'
'<span class="__cf_email__" '
'data-cfemail="debfbdb2bfacb59eb0bba9bdbfb0bfbfb0b2b7bcacbfaca7f0b1acb9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218090>
{'event_url': 'https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218090',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>3D Design Camp for Grades 4-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218088">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218089">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3d-design-camp-grades-4-8-218090">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218090/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218090/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/3d-design-camp-grades-4-8-218088">first event</a> '
'to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Each day of the 3D design camp, '
'we will use a different CAD software to create a project to 3d '
"print. Through our projects, we'll explore the essentials of 3D "
'printing. Designs from each day will be printed, but due to the '
'time it takes to print, our day 3 design will need to be picked '
'up post-class. \xa0You will receive an email when it is '
'ready.</p><p><strong>For students in grades 4-8 in Fall 2026. '
'Registration opens June 1 at 8am. Please only register if you '
'can attend all three days.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0a66676366666f784a646f7d696b646b6b64666368786b78732465786d">\n'
'<span class="__cf_email__" '
'data-cfemail="ed8180848181889fad83889a8e8c838c8c8381848f9f8c9f94c3829f8a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:48 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:48 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:48 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210792>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210792',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/30" '
'href="/events/week/2026/07/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/30" '
'href="/events/day/2026/07/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210792/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210792/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'30, 2026 @ 9:30am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#bfdcd7d6d3dbffd1dac8dcded1deded1d3d6ddcddecdc691d0cdd8"><span '
'class="__cf_email__" '
'data-cfemail="bfdcd7d6d3dbffd1dac8dcded1deded1d3d6ddcddecdc691d0cdd8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/tales-tots-18-36-mos-210792" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-gzmvujoyuwe4ja3xhurhyrfd8751-lgrotxflnfphdc" '
'name="form_build_id" type="hidden" '
'value="form-GZMvUJoyuwe4jA3xhUrHYRfD8751_LGRotxflNfPhDc"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b6d2dbd7c4c2dfd8d3ccf6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1">\n'
'<span class="__cf_email__" '
'data-cfemail="e6828b8794928f88839ca68883918587888787888a8f849487949fc8899481">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-valentines-day-sugar-cookie-class-grades-k-2-202743>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-valentines-day-sugar-cookie-class-grades-k-2-202743',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Popsicle Lab & Fresh Fruit Creations Cooking '
'Class for grades K-2</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Family Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3695/lc_featured_image?alternative_text=Words%20Golden%20Bites%20Kitchen"><img '
'alt="Words Golden Bites Kitchen" class="img-fluid" height="71" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-12/Golden%20Bites%20Kitchen_Logo.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202743/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202743/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B257%5D=257">Cooking</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade Kindergarten to 2nd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Get ready to beat the heat with '
'your own homemade treats! In this fun and interactive class, '
'students will learn how to make popsicle mixtures using fresh '
'ingredients, then design their own custom popsicle to take home '
'and freeze.</p><p>We’ll also create a delicious fruit salad '
'while learning basic kitchen skills like mixing, measuring, and '
'combining flavors.</p><p>This class encourages creativity, '
'independence, and a love for fresh, healthy foods—all while '
'having a blast! This class is for students enterting grades K-2 '
'in Fall 2026.</p><p><strong>Due to the nature of this program, '
'and out of respect for instructors and fellow patrons, we are '
'not able to accommodate anyone who arrives more than 10 minutes '
'after the scheduled start of the program. Unless prior '
'arrangements have been made with the instructor, latecomers will '
'not be allowed into the program.\xa0Thank you for your '
'understanding and help in making programs at the Library '
'successful and fun for everyone!</strong></p><p><strong>Please '
'note</strong>: Allergy substitutions are not available at this '
'time.\xa0\xa0</p><p>\xa0</p><p>This class will be conducted by '
'Nita, a local mom with a deep passion for sharing the joy of '
'wholesome, nutritious recipes with the community. Her love for '
'cooking stems from a desire to make healthy eating accessible '
'and fun for all ages.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#1c7f747570785c72796b7f7d727d7d7270757e6e7d6e6532736e7b"><span '
'class="__cf_email__" '
'data-cfemail="3d5e555451597d53584a5e5c535c5c5351545f4f5c4f4413524f5a">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-valentines-day-sugar-cookie-class-grades-k-2-202743" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-03bwl9w7hyo1mpayc3p7us2yerh-oj3edozdnaeio-0" '
'name="form_build_id" type="hidden" '
'value="form-03BwL9W7hYO1MpAyc3p7us2YeRH-Oj3EdozDNaeIO_0"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a0d2c6cfd8e0cec5d7c3c1cec1c1ceccc9c2d2c1d2d98ecfd2c7">\n'
'<span class="__cf_email__" '
'data-cfemail="b8caded7c0f8d6ddcfdbd9d6d9d9d6d4d1dacad9cac196d7cadf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217696>
{'event_url': 'https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217696',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Felt Frog Friend: Take and Make Craft Pick Up for Ages 12 '
'to 19</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217694">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217696">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217698">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217700">\n'
' 08/26/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5672/lc_featured_image?alternative_text=photo%20of%20a%20hand%20holding%20a%20felt%20frog%20wearing%20a%20flower%20around%20his%20head"><img '
'alt="photo of a hand holding a felt frog wearing a flower around '
'his head" class="img-fluid" height="371" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20122012.png" '
'width="377"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217696/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217696/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'29, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 19.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Swing by the library to pick up '
'the supplies for a make-at-home craft! Everything you need will '
"be in your kit, so it's perfect for a study break or long "
'weekend trip.\xa0</p><p>Note: This event is listed as a window '
'of time for pick-ups, there is no class or program associated '
'with this craft! You can pick up your kit starting at 5 PM until '
'the library closes. Kits that are not claimed, will be put out '
'for the general public. Thank you!\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/craft-take-and-make-craft-pick-ages-12-19-217696" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-wcvce9fox9kcxhy4ystndtdtognilzxhad-dssvtuq" '
'name="form_build_id" type="hidden" '
'value="form-WcvCe9FOX9kcxhY4ySTNDTdtoGNIlzxhAD__DsSVTUQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#eb86839e9f9f84ab858e9c888a858a8a85878289998a9992c584998c">\n'
'<span class="__cf_email__" '
'data-cfemail="dfb2b7aaababb09fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217933>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217933',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/30" '
'href="/events/week/2026/07/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/30" '
'href="/events/day/2026/07/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217933/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217933/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#2e4d4647424a6e404b594d4f404f4f4042474c5c4f5c5700415c49"><span '
'class="__cf_email__" '
'data-cfemail="d5b6bdbcb9b195bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3-5s-storytime-217933" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-1qybssu-syyk68p0ilacrb4dwfyq8vvkfgt-2keype" '
'name="form_build_id" type="hidden" '
'value="form-1qyBSSU-Syyk68p0ilACrb4DwFYQ8vVKFgT--2KeypE"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a5c1c8c4d7d1cccbc0dfe5cbc0d2c6c4cbc4c4cbc9ccc7d7c4d7dc8bcad7c2">\n'
'<span class="__cf_email__" '
'data-cfemail="b5d1d8d4c7c1dcdbd0cff5dbd0c2d6d4dbd4d4dbd9dcd7c7d4c7cc9bdac7d2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219761>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219761',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219761/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219761/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'29, 2026 @ 9:15am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#52313a3b3e36123c372531333c33333c3e3b302033202b7c3d2035"><span '
'class="__cf_email__" '
'data-cfemail="a0c3c8c9ccc4e0cec5d7c3c1cec1c1ceccc9c2d2c1d2d98ecfd2c7">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-walkers-12-23-mos-219761" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-d8vr8qzxry3hu-oj-nbvpiyqce-csqdf-9v30tsu60" '
'name="form_build_id" type="hidden" '
'value="form--d8Vr8QzXRy3hU-oj_NBVpIyQce_cSQDF-9v30TSu60"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#97e5f1f8efd7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0">\n'
'<span class="__cf_email__" '
'data-cfemail="691b0f061129070c1e0a080708080705000b1b081b1047061b0e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219784>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219784',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219784/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219784/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'29, 2026 @ 10:45am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#12717a7b7e76527c776571737c73737c7e7b706073606b3c7d6075"><span '
'class="__cf_email__" '
'data-cfemail="53303b3a3f37133d362430323d32323d3f3a312132212a7d3c2134">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/book-babies-pre-walkers-0-12-mos-219784" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-1rokmekwbdefexy-iqixnhwby3wvbgf8j08-fvtb20m" '
'name="form_build_id" type="hidden" '
'value="form-1RokMEKwbdEFExY-iQixnhwbY3wVbgf8j08_Fvtb20M"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1c6e7a73645c72796b7f7d727d7d7270757e6e7d6e6532736e7b">\n'
'<span class="__cf_email__" '
'data-cfemail="9deffbf2e5ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/cooking-class-ages-3-5-202738>
{'event_url': 'https://www.newcanaanlibrary.org/event/cooking-class-ages-3-5-202738',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Popsicle Lab & Fresh Fruit Creations Cooking '
'Class for ages 3-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Family Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–12:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3695/lc_featured_image?alternative_text=Words%20Golden%20Bites%20Kitchen"><img '
'alt="Words Golden Bites Kitchen" class="img-fluid" height="71" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-12/Golden%20Bites%20Kitchen_Logo.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202738/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202738/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B257%5D=257">Cooking</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Get ready to beat the heat with '
'your own homemade treats! In this fun and interactive class, '
'students will learn how to make popsicle mixtures using fresh '
'ingredients, then design their own custom popsicle to take home '
'and freeze.</p><p>We’ll also create a delicious fruit salad '
'while learning basic kitchen skills like mixing, measuring, and '
'combining flavors.</p><p>This class encourages creativity, '
'independence, and a love for fresh, healthy foods—all while '
'having a blast! For Ages 3-5.\xa0</p><p><strong>Due to the '
'nature of this program, and out of respect for instructors and '
'fellow patrons, we are not able to accommodate anyone who '
'arrives more than 10 minutes after the scheduled start of the '
'program. Unless prior arrangements have been made with the '
'instructor, latecomers will not be allowed into the program.\xa0'
'Thank you for your understanding and help in making programs at '
'the Library successful and fun for '
'everyone!</strong></p><p><strong>Please note</strong>: Allergy '
'substitutions are not available at this time.\xa0\xa0</p><p>This '
'class will be conducted by Nita, a local mom with a deep passion '
'for sharing the joy of wholesome, nutritious recipes with the '
'community. Her love for cooking stems from a desire to make '
'healthy eating accessible and fun for all ages.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#84e7ecede8e0c4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3"><span '
'class="__cf_email__" '
'data-cfemail="d2b1babbbeb692bcb7a5b1b3bcb3b3bcbebbb0a0b3a0abfcbda0b5">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/cooking-class-ages-3-5-202738" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-5x4khpb8h2r29kpv9htut5wbp7wc2baueyeysphpsam" '
'name="form_build_id" type="hidden" '
'value="form-5x4Khpb8H2r29kPv9HTUT5wbP7Wc2BaUeyeYspHPSaM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d7a5b1b8af97b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">\n'
'<span class="__cf_email__" '
'data-cfemail="ed9f8b8295ad83889a8e8c838c8c8381848f9f8c9f94c3829f8a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/fairfield-county-dance-festival-green-202572> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/cooking-class-grades-7-12-202739> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218088> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/gentle-yoga-185020> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/cooking-class-grades-3-6-202737> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168844> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219100> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218089> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chair-yoga-180344> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161844> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203859> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689> (referer: https://www.newcanaanlibrary.org/events/list?page=6)
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/fairfield-county-dance-festival-green-202572>
{'event_url': 'https://www.newcanaanlibrary.org/event/fairfield-county-dance-festival-green-202572',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Fairfield County Dance Festival on the Green</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Merrill Event Lawn\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:30pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5557/lc_featured_image?alternative_text=A%20dancer%20jumping%20in%20front%20of%20library%20building%20"><img '
'alt="A dancer jumping in front of library building " '
'class="img-fluid" height="322" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-03/Dance%20NCl.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202572/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202572/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B229%5D=229">Featured</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'30, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us on the green for a '
'glorious evening of dance.\xa0The Thomas/Ortiz Dance Company and '
'East Coast\xa0Contemporary Ballet are coming to the library as a '
'part of a series of free outdoor dance performances\xa0'
'throughout Fairfield County to enable greater access to the arts '
'and arts education.\xa0</p><p>Please bring your own chairs, '
'blankets, and food.</p><p>Guest dance companies include Parsons '
'Dance Company, Take Dance Company, Amy Marshall Dance Company, '
'Neville Dance Company, Thomas/Ortiz Dance and East Coast '
'Contemporary Ballet.</p><p><strong>Rain Date is Wednesday '
'7/29/2026</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#fc9f94959098bc92998b9f9d929d9d9290959e8e9d8e85d2938e9b"><span '
'class="__cf_email__" '
'data-cfemail="5c3f343530381c32392b3f3d323d3d3230353e2e3d2e2572332e3b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/fairfield-county-dance-festival-green-202572" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-5rzcu4yrxas-hsb1qxychs5qnap8-dw2ayhh-oyyevm" '
'name="form_build_id" type="hidden" '
'value="form-5rZCu4YrxAs-hSB1QxychS5qnAp8_Dw2ayHh_oyyevM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#8efce8e1f6cee0ebf9edefe0efefe0e2e7ecfceffcf7a0e1fce9">\n'
'<span class="__cf_email__" '
'data-cfemail="b6c4d0d9cef6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/cooking-class-grades-7-12-202739>
{'event_url': 'https://www.newcanaanlibrary.org/event/cooking-class-grades-7-12-202739',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Popsicle Lab & Fresh Fruit Creations Cooking '
'Class for Grades 7-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/29" '
'href="/events/week/2026/07/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/29" '
'href="/events/day/2026/07/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Family Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, July 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–3:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3695/lc_featured_image?alternative_text=Words%20Golden%20Bites%20Kitchen"><img '
'alt="Words Golden Bites Kitchen" class="img-fluid" height="71" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-12/Golden%20Bites%20Kitchen_Logo.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202739/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202739/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B257%5D=257">Cooking</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 7th Grade to 12th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Get ready to beat the heat with '
'your own homemade treats! In this fun and interactive class, '
'students will learn how to make popsicle mixtures using fresh '
'ingredients, then design their own custom popsicle to take home '
'and freeze.</p><p>We’ll also create a delicious fruit salad '
'while learning basic kitchen skills like mixing, measuring, and '
'combining flavors.</p><p>This class encourages creativity, '
'independence, and a love for fresh, healthy foods—all while '
'having a blast! This class is for students enterting grades 7-12 '
'in Fall 2026.</p><p><strong>Due to the nature of this program, '
'and out of respect for instructors and fellow patrons, we are '
'not able to accommodate anyone who arrives more than 10 minutes '
'after the scheduled start of the program. Unless prior '
'arrangements have been made with the instructor, latecomers will '
'not be allowed into the program.\xa0Thank you for your '
'understanding and help in making programs at the Library '
'successful and fun for everyone!</strong></p><p><strong>Please '
'note</strong>: Allergy substitutions are not available at this '
'time.\xa0\xa0</p><p>This class will be conducted by Nita, a '
'local mom with a deep passion for sharing the joy of wholesome, '
'nutritious recipes with the community. Her love for cooking '
'stems from a desire to make healthy eating accessible and fun '
'for all ages.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#600308090c04200e051703010e01010e0c0902120112194e0f1207"><span '
'class="__cf_email__" '
'data-cfemail="97f4fffefbf3d7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/cooking-class-grades-7-12-202739" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-my9gi02y1acdrud5y-pkac1-wc8fkoius1p3tszwqi8" '
'name="form_build_id" type="hidden" '
'value="form-mY9Gi02y1aCDRuD5y_pKaC1-wC8FKOiUS1p3tszWqi8"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#087a6e677048666d7f6b696669696664616a7a697a7126677a6f">\n'
'<span class="__cf_email__" '
'data-cfemail="7200141d0a321c170511131c13131c1e1b100013000b5c1d0015">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218088>
{'event_url': 'https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218088',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>3D Design Camp for Grades 4-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/27" '
'href="/events/week/2026/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/27" '
'href="/events/day/2026/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3d-design-camp-grades-4-8-218088">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218089">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218090">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218088/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218088/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Each day of the 3D design camp, '
'we will use a different CAD software to create a project to 3d '
"print. Through our projects, we'll explore the essentials of 3D "
'printing. Designs from each day will be printed, but due to the '
'time it takes to print, our day 3 design will need to be picked '
'up post-class. \xa0You will receive an email when it is '
'ready.</p><p><strong>For students in grades 4-8 in Fall 2026. '
'Registration opens June 1 at 8am. Please only register if you '
'can attend all three days.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/3d-design-camp-grades-4-8-218088" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-he6rt22sei-rk8q85ew-t-aenctojdelzgk5ti2qvzu" '
'name="form_build_id" type="hidden" '
'value="form-He6rt22seI_Rk8q85eW_T-aenctoJDELZGK5TI2QvZU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3955545055555c4b79575c4e5a585758585755505b4b584b4017564b5e">\n'
'<span class="__cf_email__" '
'data-cfemail="c6aaabafaaaaa3b486a8a3b1a5a7a8a7a7a8aaafa4b4a7b4bfe8a9b4a1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:49 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/gentle-yoga-185020>
{'event_url': 'https://www.newcanaanlibrary.org/event/gentle-yoga-185020',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Gentle Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/27" '
'href="/events/week/2026/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/27" '
'href="/events/day/2026/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185014">\n'
' 06/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185017">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/gentle-yoga-185019">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/gentle-yoga-185020">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185020/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/185020/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'27, 2026 @ 10:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We have teamed up with the New '
'Canaan YMCA to create a tranquil, foundation-building class '
'designed to introduce new students to yoga, as well as offer '
'regular practitioners a gentle class to complement their yoga '
'practice. <strong>Participants must bring their own yoga mat. '
'</strong>Yoga blocks are optional. The class is designed to have '
'modified poses so everyone has the best experience.\xa0'
'</p><p><strong>About the instructor:\xa0</strong>Martha Risom '
'has been teaching gentle yoga for over decade. She continues to '
"be inspired by her students and yoga's ability to lead us toward "
'a path of physical, mental, emotional and spiritual well '
'being.\xa0</p><p><br/>\xa0</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/gentle-yoga-185020" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-n-dnepc-bzs0ia1iep-wpsbcg0kisc9-2cegqvsmoym" '
'name="form_build_id" type="hidden" '
'value="form-N_dnepC-bzS0IA1IEP-WpsBCg0kisc9-2CEGqVsmOyM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ea9e818f93aa848f9d898b848b8b84868388988b9893c485988d">\n'
'<span class="__cf_email__" '
'data-cfemail="f0849b9589b09e958793919e91919e9c999282918289de9f8297">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-presenter">\n'
'<span class="lc-font-weight-bold">\n'
' Presenter:\n'
' </span>\n'
'\n'
' YMCA of New Canaan \n'
' </div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:49 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/cooking-class-grades-3-6-202737>
{'event_url': 'https://www.newcanaanlibrary.org/event/cooking-class-grades-3-6-202737',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Popsicle Lab & Fresh Fruit Creations Cooking '
'Class for Grades 3-6</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kend Family Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–3:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3695/lc_featured_image?alternative_text=Words%20Golden%20Bites%20Kitchen"><img '
'alt="Words Golden Bites Kitchen" class="img-fluid" height="71" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-12/Golden%20Bites%20Kitchen_Logo.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202737/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/202737/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B257%5D=257">Cooking</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 6th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Get ready to beat the heat with '
'your own homemade treats! In this fun and interactive class, '
'students will learn how to make popsicle mixtures using fresh '
'ingredients, then design their own custom popsicle to take home '
'and freeze.</p><p>We’ll also create a delicious fruit salad '
'while learning basic kitchen skills like mixing, measuring, and '
'combining flavors.</p><p>This class encourages creativity, '
'independence, and a love for fresh, healthy foods—all while '
'having a blast! This class is for students enterting grades 3-6 '
'in Fall 2026.</p><p><strong>Due to the nature of this program, '
'and out of respect for instructors and fellow patrons, we are '
'not able to accommodate anyone who arrives more than 10 minutes '
'after the scheduled start of the program. Unless prior '
'arrangements have been made with the instructor, latecomers will '
'not be allowed into the program.\xa0Thank you for your '
'understanding and help in making programs at the Library '
'successful and fun for everyone!</strong></p><p><strong>Please '
'note</strong>: Allergy substitutions are not available at this '
'time.\xa0\xa0</p><p>This class will be conducted by Nita, a '
'local mom with a deep passion for sharing the joy of wholesome, '
'nutritious recipes with the community. Her love for cooking '
'stems from a desire to make healthy eating accessible and fun '
'for all ages.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#d0b3b8b9bcb490beb5a7b3b1beb1b1bebcb9b2a2b1a2a9febfa2b7"><span '
'class="__cf_email__" '
'data-cfemail="f3909b9a9f97b39d968490929d92929d9f9a918192818add9c8194">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/cooking-class-grades-3-6-202737" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-jgidztsau5jj3tcnof8sggw5r9zgmqc8tsq-r5ai5gq" '
'name="form_build_id" type="hidden" '
'value="form-jGidzTsAU5jJ3tCnOf8sgGw5R9zGMQc8TSq-r5Ai5gQ"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#92e0f4fdead2fcf7e5f1f3fcf3f3fcfefbf0e0f3e0ebbcfde0f5">\n'
'<span class="__cf_email__" '
'data-cfemail="93e1f5fcebd3fdf6e4f0f2fdf2f2fdfffaf1e1f2e1eabdfce1f4">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168844>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168844',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168844/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168844/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168844/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#d1b2b9b8bdb591bfb4a6b2b0bfb0b0bfbdb8b3a3b0a3a8ffbea3b6"><span '
'class="__cf_email__" '
'data-cfemail="9ffcf7f6f3fbdff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5527333a2d153b302236343b34343b393c372734272c7b3a2732">\n'
'<span class="__cf_email__" '
'data-cfemail="cab8aca5b28aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219100>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219100',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/27" '
'href="/events/week/2026/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/27" '
'href="/events/day/2026/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219100/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219100/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!\xa0</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#3c5f545550587c52594b5f5d525d5d5250555e4e5d4e4512534e5b"><span '
'class="__cf_email__" '
'data-cfemail="f19299989d95b19f948692909f90909f9d989383908388df9e8396">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/summer-stories-and-crafts-ages-2-and-3-years-219100" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-5ochpfssfpjsfgtbklp4cpejrqukfetjioz49lkp82q" '
'name="form_build_id" type="hidden" '
'value="form-5ochPfsSFpjsfGTBKLp4CPEJRqUKFetjioZ49LKp82Q"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2c5e4a43546c42495b4f4d424d4d4240454e5e4d5e5502435e4b">\n'
'<span class="__cf_email__" '
'data-cfemail="d5a7b3baad95bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218089>
{'event_url': 'https://www.newcanaanlibrary.org/event/3d-design-camp-grades-4-8-218089',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>3D Design Camp for Grades 4-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/28" '
'href="/events/week/2026/07/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/28" '
'href="/events/day/2026/07/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218088">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3d-design-camp-grades-4-8-218089">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3d-design-camp-grades-4-8-218090">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218089/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218089/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/3d-design-camp-grades-4-8-218088">first event</a> '
'to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 4th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Each day of the 3D design camp, '
'we will use a different CAD software to create a project to 3d '
"print. Through our projects, we'll explore the essentials of 3D "
'printing. Designs from each day will be printed, but due to the '
'time it takes to print, our day 3 design will need to be picked '
'up post-class. \xa0You will receive an email when it is '
'ready.</p><p><strong>For students in grades 4-8 in Fall 2026. '
'Registration opens June 1 at 8am. Please only register if you '
'can attend all three days.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d9b5b4b0b5b5bcab99b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">\n'
'<span class="__cf_email__" '
'data-cfemail="0a66676366666f784a646f7d696b646b6b64666368786b78732465786d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Learn to Play Piano Through Your Favorite Movie Themes for '
'Ages 7-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/25" '
'href="/events/week/2026/07/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/25" '
'href="/events/day/2026/07/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:30pm–3:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211693/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211693/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 7 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to learn basic music concepts and start '
'piano playing through your favorite movie themes. The program is '
'designed for children ages 7-12 with some piano experience.\xa0'
'The children will explore the notes on the keyboard and learn '
'the note values, key signatures, dynamics and triads. There will '
'be a final Concert with everyone performing their favorite movie '
'themes!\xa0</p><p><strong>\xa0Please plan to attend all\xa03 '
'sessions. This class meets on 7/11, 7/18, & 7/25 from '
'2:30pm-3:30pm.</strong></p><p><em>Sample\xa0songs '
'include:</em>\xa0\xa0Let It Go, How Far I’ll Go, Can’t Stop This '
'Feeling, Into The Unknown, We Don’t Talk About Bruno, Kung Fu '
'Fighting, Hakuna Matata, A Whole New World, You’ve Got a Friend '
'In Me, Star Wars (Main Theme), Fly Love, Can You Feel The Love '
'Tonight and Beauty and The Beast.</p><p>Cary Wang, Junior at '
'Horace Mann School and Pre-college student at Manhattan School '
'of Music (MSM), has been invited to perform in Carnegie Hall 17 '
'times, Vienna’s prestigious Ehrbar Hall and Mozart Haus, London '
'Royal Albert Hall, Lincoln Center, Kaufman Center, and Yamaha '
'Artist Piano Concert, etc. Cary has been an avid volunteer '
'leader at the New Canaan Library and has held similar sessions '
'like this in the last 2 years. This initiative aims to help '
'students expand music education and develop a lifelong interest '
'in art appreciation by integrating with academic and leadership '
'development.</p><p>Cary started his piano learning journey at 6 '
'and has been Piano major at Manhattan School of Music since 2018 '
'with the honor of Dean’s List for a 4.0 GPA each year.\xa0 At '
'the age of 9, he accomplished Piano Level 10 Assessment of Royal '
'Conservatory Music Development Program with First Honors. In '
'June 2023, he completed the highest level, Associate Diploma of '
'Piano Performance with Honors.\xa0Cary has won many piano '
'competitions since 6. He was named as the Alternative Winner of '
'the 2024-25 Music Teachers National Association (“MTNA”) '
'Connecticut Senior Piano Competition, the Sole Winner of the '
'2022-23 MTNA Connecticut Junior Piano Competition, the Alternate '
'Winner of 2023-24, and the Sole Winner of 2019-20 highly '
'competitive MSM Piano Concerto Competition. Cary made his '
'orchestral debut with the New York Concerti Sinfonietta in '
'January 2020 at Lincoln Center.</p><p>Cary’s Music Channel -\xa0'
'<a '
'href="https://www.youtube.com/@johnwang5673"><strong>https://www.youtube.com/@johnwang5673</strong></a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#07646f6e6b63476962706466696666696b6e657566757e29687560"><span '
'class="__cf_email__" '
'data-cfemail="23404b4a4f47634d465440424d42424d4f4a415142515a0d4c5144">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a5c6cdccc9c1e5cbc0d2c6c4cbc4c4cbc9ccc7d7c4d7dc8bcad7c2">\n'
'<span class="__cf_email__" '
'data-cfemail="284b4041444c68464d5f4b494649494644414a5a495a5106475a4f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chair-yoga-180344>
{'event_url': 'https://www.newcanaanlibrary.org/event/chair-yoga-180344',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chair Yoga</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/27" '
'href="/events/week/2026/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/27" '
'href="/events/day/2026/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:30am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180318">\n'
' 01/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180319">\n'
' 01/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180325">\n'
' 03/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180326">\n'
' 03/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180327">\n'
' 03/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180328">\n'
' 03/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180329">\n'
' 04/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180331">\n'
' 04/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180332">\n'
' 04/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180333">\n'
' 05/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180334">\n'
' 05/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180335">\n'
' 05/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180336">\n'
' 06/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180341">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chair-yoga-180343">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chair-yoga-180344">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180344/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180344/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'27, 2026 @ 11:30am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>We are pleased to continue our '
'partnership with the New Canaan YMCA to bring you Chair '
'Yoga.</p><p>With the support of a chair, this gentle Chair Yoga '
'class will help you improve postural alignment, maintain pelvic '
'mobility, reduce muscle\xa0tension and gain strength through '
'flowing movements and focused breathing.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#b2dddcdedbdcd7c0d7d4f2dcd7c5d1d3dcd3d3dcdedbd0c0d3c0cb9cddc0d5"><span '
'class="__cf_email__" '
'data-cfemail="3b54555752555e495e5d7b555e4c585a555a5a55575259495a49421554495c">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" action="/event/chair-yoga-180344" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-jd9bb9i1pki0fcifhcqadd0abdlttrjycp61xe3wwak" '
'name="form_build_id" type="hidden" '
'value="form-jD9BB9i1pki0fcIFHcQadd0AbdlttRjYcp61xE3wWak"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#097d626c7049676c7e6a686768686765606b7b687b7027667b6e">\n'
'<span class="__cf_email__" '
'data-cfemail="6c180709152c02091b0f0d020d0d0200050e1e0d1e1542031e0b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161844>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161844',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/26" '
'href="/events/week/2026/07/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/26" '
'href="/events/day/2026/07/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 26\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, July 26, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203859>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203859',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup! for Grades K-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/27" '
'href="/events/week/2026/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/27" '
'href="/events/day/2026/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, July 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203859/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203859/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'27, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ff9c9796939bbf919a889c9e919e9e9193969d8d9e8d86d1908d98"><span '
'class="__cf_email__" '
'data-cfemail="debdb6b7b2ba9eb0bba9bdbfb0bfbfb0b2b7bcacbfaca7f0b1acb9">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/chess-meetup-grades-k-5-203859" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-acuw0-rxat1e7at9xar6hod-urczxh8s2tjg5pu-g" '
'name="form_build_id" type="hidden" '
'value="form-Acuw0-rXAt1e7aT9xAr6hod-_uRcZxH8S2tJg5PU-_g"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a7c4cfcecbc3e7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">\n'
'<span class="__cf_email__" '
'data-cfemail="26454e4f4a42664843514547484747484a4f445447545f08495441">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:50 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:50 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:50 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Advanced: Learn Music Theory through Piano for Ages '
'8-14</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/25" '
'href="/events/week/2026/07/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/25" '
'href="/events/day/2026/07/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, July 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:45pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211689/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211689/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 14.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to perfect your favorite piano pieces '
'through advance music theory, foundation for education '
'development and musical advancement. Children/Teens should have '
'piano experience. <strong>Best for ages 8-14</strong>. Class '
'will cover, theory concepts, major and minor scales, '
'dynamics/articulation, modes, triads/inversions, 7th chords, '
'performance enhancement, expression/interpretation, performance '
'etiquette and public speaking. The last class will include a '
'final Concert with everyone performing their pieces!\xa0'
'</p><p><strong>Please plan to attend all 3 sessions. This class '
'meets on 7/11, 7/18, & 7/25 from 3:45pm-4:45pm.\xa0'
'</strong></p><p>\xa0</p><p>Cary Wang, 10th Grader at Horace Mann '
'School and Pre-college student at Manhattan School of Music '
'(MSM), has been invited to perform in Carnegie Hall 16 times, '
'Vienna’s prestigious Ehrbar Hall and Mozarthaus, London Royal '
'Albert Hall, Lincoln Center, Kaufman Center, and Yamaha Artist '
'Piano Concert Series with Yamaha Artist Mr. Jose Ramon Mendez, '
'etc. Cary has been an avid volunteer leader of the Piano Village '
'Foundation by hosting a quarterly Music Appreciation workshop '
'for young kids and teaching them basic music theory. This '
'initiative provides music education to children and youth, '
'fostering personal growth, confidence, and community engagement '
'through musical expression. It aims to cultivate core values and '
'lifelong interest in the arts, integrating these with academic '
'and leadership development.</p><p>Cary has won many piano '
'competitions since the age of six.\xa0He was named as Sole '
'Winner of the 2022-23 Music Teachers National Association '
'Connecticut State Junior Piano Competition, the Alternate Winner '
'of the 2023-24, and the Winner of the 2019-20 highly competitive '
'MSM Piano Concerto Competition, the 2020 Gold Award, and the '
'2017 Silver Award of Piano group SinoVision the Teen’s Talent '
'Show. Cary made his orchestral debut with the New York Concerti '
'Sinfonietta in January 2020 at Lincoln Center. Since 2016, Cary '
'has been invited to perform at the New Canaan Inn, Waveny '
'Lifecare Network, twice a year to share the joy with the seniors '
'there. He received the 2023 Presidential Service Award for his '
'work.</p><p>Cary’s Music Channel - <a '
'href="https://www.youtube.com/@johnwang5673">https://www.youtube.com/@johnwang5673</a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#90f3f8f9fcf4d0fef5e7f3f1fef1f1fefcf9f2e2f1e2e9beffe2f7"><span '
'class="__cf_email__" '
'data-cfemail="9af9f2f3f6fedaf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#74171c1d1810341a110317151a15151a181d160615060d5a1b0613">\n'
'<span class="__cf_email__" '
'data-cfemail="6e0d0607020a2e000b190d0f000f0f0002070c1c0f1c1740011c09">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/intermediate-cricut-class-adults-acrylic-vinyl-bookmarks-226174> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=8> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/3-5s-storytime-217934> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210793> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219116> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219785> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223495> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-3-4-218095> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219762> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218081> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/pond-animal-puppets-ages-5-7-199600> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 8395
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/intermediate-cricut-class-adults-acrylic-vinyl-bookmarks-226174>
{'event_url': 'https://www.newcanaanlibrary.org/event/intermediate-cricut-class-adults-acrylic-vinyl-bookmarks-226174',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Intermediate Cricut Class for Adults: Summer Acrylic & '
'Vinyl Bookmarks</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/05" '
'href="/events/week/2026/08/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/05" '
'href="/events/day/2026/08/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 5, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:30pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226174/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226174/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'14, 2026 @ 8:15pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Fuel your summer reading with a '
'new bookmark. In this intermediate Cricut class, participants '
'will master the art of working with sticky vinyl to personalize '
'a stylish bookmark with a custom design. Please note that prior '
'experience with the Cricut machine is required for this '
'workshop.</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#640f131d0a0a01240a011307050a05050a080d061605161d4a0b1603">\n'
'<span class="__cf_email__" '
'data-cfemail="e289959b8c8c87a28c879581838c83838c8e8b809083909bcc8d9085">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/3-5s-storytime-217934>
{'event_url': 'https://www.newcanaanlibrary.org/event/3-5s-storytime-217934',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>3-5's Storytime</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/06" '
'href="/events/week/2026/08/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/06" '
'href="/events/day/2026/08/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–11:45am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217929">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217930">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217931">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217932">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/3-5s-storytime-217933">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/3-5s-storytime-217934">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/944/lc_featured_image?alternative_text=Book%20with%20Heart"><img '
'alt="Book with Heart" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/3-5%27s.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217934/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217934/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 3 to 5.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'3-5’s Storytime series with songs, rhymes, felts, special books '
'and activities! This class is for those who are 3-5 years '
'old.<strong>\xa0</strong><em><strong>Registration for this class '
'is for each individual date.\xa0</strong></em></p><p>\xa0'
'</p><p><strong>During the first five minutes of the program, '
'those who are on the waitlist may be admitted if there are open '
'spaces. If there is no one on the waitlist present after 5 '
'minutes have passed, walk-in attendees may be admitted. We do '
'not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">3-5\'s Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>In this program, '
'families may choose for preschoolers to participate '
'independently or with an adult caregiver. If your child '
'participates independently, an adult caregiver must remain in '
'the Children’s Room for the duration of the program.</strong>\xa0'
'If your child finishes a program early, or if a child becomes '
'ill or behaves in a manner that interferes with other '
'participants’ enjoyment of the program, they may be released '
'into the Children’s Room before the program’s end time. Please '
'ensure that your child knows exactly where to find you at all '
'times.<strong>\xa0If a caregiver chooses to join, please plan to '
'attend and be engaged with your child throughout this '
'program</strong>. Please avoid side conversations or cell phone '
'use for the duration of the program.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#abc8c3c2c7cfebc5cedcc8cac5cacac5c7c2c9d9cad9d285c4d9cc"><span '
'class="__cf_email__" '
'data-cfemail="9dfef5f4f1f9ddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1a7e777b686e73747f605a747f6d797b747b7b74767378687b68633475687d">\n'
'<span class="__cf_email__" '
'data-cfemail="07636a6675736e69627d476962706466696666696b6e657566757e29687560">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210793>
{'event_url': 'https://www.newcanaanlibrary.org/event/tales-tots-18-36-mos-210793',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Tales for Tots (18-36 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/06" '
'href="/events/week/2026/08/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/06" '
'href="/events/day/2026/08/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:30am–10:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210787">\n'
' 06/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210788">\n'
' 07/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210789">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210790">\n'
' 07/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210791">\n'
' 07/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/tales-tots-18-36-mos-210792">\n'
' 07/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/tales-tots-18-36-mos-210793">\n'
' 08/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/946/lc_featured_image?alternative_text=a%20book%20with%20a%20tail%20and%20music%20notes%20on%20the%20cover%20and%20spine"><img '
'alt="a book with a tail and music notes on the cover and spine" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Tales%20for%20Tots.png" '
'width="391"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210793/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/210793/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 - 24 months to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>\xa0</p><p>Join Miss Dajana for '
'Tales for Tots Storytime series with songs, rhymes, felts, and '
'special books!\xa0This class is for those who are 18-36 months '
'old with a caregiver. <strong>REGISTRATION FOR THIS CLASS IS FOR '
'EACH INDIVIDUAL DATE. </strong>Please pick the days you are '
'available and sign up for those dates.\xa0\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the community room and is a '
'large class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#f7949f9e9b93b79992809496999696999b9e958596858ed9988590"><span '
'class="__cf_email__" '
'data-cfemail="04676c6d6860446a617367656a65656a686d667665767d2a6b7663">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#20444d415254494e455a604e455743414e41414e4c4942524152590e4f5247">\n'
'<span class="__cf_email__" '
'data-cfemail="30545d514244595e554a705e554753515e51515e5c5952425142491e5f4257">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219116>
{'event_url': 'https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219116',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Creative Writing and Bookmaking Camp for Grades '
'3-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/05" '
'href="/events/week/2026/08/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/05" '
'href="/events/day/2026/08/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 5, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219114">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219115">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219116">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219116/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219116/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219114">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a writer entering grades '
'3-5? Join Miss Rebecca to write, write, write! In this '
'<strong>three-day </strong>creative writing camp, we will design '
"our own books. We'll learn about the bookmaking process, then "
'write stories of our own. <strong>This is a three-class series. '
'Please plan to attend all three classes (3:30 p.m. August 3, 4, '
'and 5) as lessons build on one another.\xa0</strong></p><p>This '
'program is intended for children entering grades 3-5 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#fa999293969eba949f8d999b949b9b94969398889b8883d495889d"><span '
'class="__cf_email__" '
'data-cfemail="eb888382878fab858e9c888a858a8a85878289998a9992c584998c">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a6d4c0c9dee6c8c3d1c5c7c8c7c7c8cacfc4d4c7d4df88c9d4c1">\n'
'<span class="__cf_email__" '
'data-cfemail="ea988c8592aa848f9d898b848b8b84868388988b9893c485988d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219785>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-pre-walkers-0-12-mos-219785',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Pre-Walkers (0-12 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/05" '
'href="/events/week/2026/08/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/05" '
'href="/events/day/2026/08/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 5, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:45am–11:30am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219779">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219780">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219781">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219782">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219783">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-pre-walkers-0-12-mos-219784">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-pre-walkers-0-12-mos-219785">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/986/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-03/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219785/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219785/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Pre-Walkers) Storytime series with songs, rhymes, '
'bounces, and a special book! This class is for those who are '
'0-12 months old with a caregiver. Depending on your baby’s nap '
'time, please also see the 9:15 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 9:15 a.m. Wednesday '
'Book Babies Walkers classes.</strong>\xa0</p><p>\xa0</p><p>This '
'storytime takes place in the Community Room and is a large '
'class.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#75161d1c1911351b100216141b14141b191c170714070c5b1a0712"><span '
'class="__cf_email__" '
'data-cfemail="afccc7c6c3cbefc1cad8cccec1cecec1c3c6cdddceddd681c0ddc8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0371656c7b436d667460626d62626d6f6a617162717a2d6c7164">\n'
'<span class="__cf_email__" '
'data-cfemail="780a1e170038161d0f1b191619191614111a0a190a0156170a1f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223495>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223495',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/08" '
'href="/events/week/2026/08/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/08" '
'href="/events/day/2026/08/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223495/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223495/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223495/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#5e31303237303b2c3b381e303b293d3f303f3f3032373c2c3f2c2770312c39"><span '
'class="__cf_email__" '
'data-cfemail="254a4b494c4b40574043654b405246444b44444b494c475744575c0b4a5742">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#214942484c484f4e614f445642404f40404f4d4843534053580f4e5346">\n'
'<span class="__cf_email__" '
'data-cfemail="1d757e74707473725d73786a7e7c737c7c7371747f6f7c6f6433726f7a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-3-4-218095>
{'event_url': 'https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-3-4-218095',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beaded Jumping Frogs for Grades 3-4</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/07" '
'href="/events/week/2026/08/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/07" '
'href="/events/day/2026/08/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, August 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218095/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218095/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 4th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn to bead a jumping frog '
'using seed beads and wire. For students in grades 3-4 in Fall '
'2026.</p><p><em>Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#402328292c24002e253723212e21212e2c2922322132396e2f3227"><span '
'class="__cf_email__" '
'data-cfemail="63000b0a0f07230d061400020d02020d0f0a011102111a4d0c1104">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4b27262227272e390b252e3c282a252a2a25272229392a39326524392c">\n'
'<span class="__cf_email__" '
'data-cfemail="117d7c787d7d7463517f746672707f70707f7d7873637063683f7e6376">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219762>
{'event_url': 'https://www.newcanaanlibrary.org/event/book-babies-walkers-12-23-mos-219762',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Book Babies ~Walkers (12-23 mos.)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/05" '
'href="/events/week/2026/08/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/05" '
'href="/events/day/2026/08/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Community Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 5, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 9:15am–10:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219756">\n'
' 06/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219757">\n'
' 07/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219758">\n'
' 07/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219759">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219760">\n'
' 07/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/book-babies-walkers-12-23-mos-219761">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/book-babies-walkers-12-23-mos-219762">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1223/lc_featured_image?alternative_text=Book%20with%20footprints"><img '
'alt="Book with footprints" class="img-fluid" height="402" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-04/Book%20Babies.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219762/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219762/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 0 - 3 months to 12 - 24 months.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Rebecca for the Book '
'Babies (Walkers) Storytime series with songs, rhymes, bounces, '
'and a special book! This class is for those who are 12-23 months '
'old with a caregiver. Depending on your baby’s nap time, please '
'also see the 10:45 a.m. Wednesday storytime.\xa0'
'<strong>REGISTRATION FOR THIS CLASS IS FOR EACH INDIVIDUAL '
'DATE.</strong>\xa0Please pick the days you are available and '
'sign up for those dates.\xa0<strong>Please do not register for '
'this class if you are registered for the 10:45 a.m. Wednesday '
'Book Babies Pre-Walkers classes.</strong>\xa0</p><p>\xa0'
'</p><p>This storytime takes place in the Community Room and is a '
'large class.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#610209080d05210f041602000f00000f0d0803130013184f0e1306"><span '
'class="__cf_email__" '
'data-cfemail="c2a1aaabaea682aca7b5a1a3aca3a3acaeaba0b0a3b0bbecadb0a5">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ccbeaaa3b48ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab">\n'
'<span class="__cf_email__" '
'data-cfemail="f486929b8cb49a918397959a95959a989d968695868dda9b8693">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218081>
{'event_url': 'https://www.newcanaanlibrary.org/event/ev3-robotics-happy-code-club-grades-5-8-218081',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>EV3 Robotics with Happy Code Club for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/06" '
'href="/events/week/2026/08/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/06" '
'href="/events/day/2026/08/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div '
'class="lc-event-info-cancelled"><strong>Cancelled</strong></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218081/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218081/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration is no longer '
'available for this event.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn the basics of programming '
'robots with EV3 Lego Mindstorms, using a First Lego League '
'training guide led by Happy Code Club. \xa0We will explore '
'coding concepts as we program our robot to complete challenges '
'and compete in games. For students in grades 5-8 in Fall '
'2026.</p><p><strong>This class is cancelled due to scheduling '
'conflicts.</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#bdded5d4d1d9fdd3d8cadedcd3dcdcd3d1d4dfcfdccfc493d2cfda"><span '
'class="__cf_email__" '
'data-cfemail="47242f2e2b23072922302426292626292b2e253526353e69283520">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e985848085858c9ba9878c9e8a888788888785808b9b889b90c7869b8e">\n'
'<span class="__cf_email__" '
'data-cfemail="f599989c99999087b59b908296949b94949b999c978794878cdb9a8792">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:51 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:51 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:51 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/pond-animal-puppets-ages-5-7-199600>
{'event_url': 'https://www.newcanaanlibrary.org/event/pond-animal-puppets-ages-5-7-199600',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Pond Animal Puppets for Ages 5-7</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/06" '
'href="/events/week/2026/08/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/06" '
'href="/events/day/2026/08/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5246/lc_featured_image?alternative_text=Assorted%20crafting%20supplies"><img '
'alt="Assorted crafting supplies" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/Crafting%20%281%29_2.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199600/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199600/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to 7.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 5-7 years old will '
'join Miss Dajana to learn about what animals live in and around '
'a pond followed by a fun DIY puppet activity.\xa0'
'</p><p><strong>This class is intended for children ages 5-7 '
'years old.</strong>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#72111a1b1e16321c170511131c13131c1e1b100013000b5c1d0015"><span '
'class="__cf_email__" '
'data-cfemail="f6959e9f9a92b69893819597989797989a9f948497848fd8998491">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#baded7dbc8ced3d4dfc0fad4dfcdd9dbd4dbdbd4d6d3d8c8dbc8c394d5c8dd">\n'
'<span class="__cf_email__" '
'data-cfemail="3d59505c4f49545358477d53584a5e5c535c5c5351545f4f5c4f4413524f5a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/movie-screening-stand-me-197550> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180887> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161845> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219115> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219101> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203735> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203860> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223494> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/silent-book-club-221485> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211690> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211694> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10301
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/movie-screening-stand-me-197550>
{'event_url': 'https://www.newcanaanlibrary.org/event/movie-screening-stand-me-197550',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Movie: Stand by Me</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5194/lc_featured_image?alternative_text=This%20image%20is%20the%20movie%20poster%20for%20Stand%20by%20Me"><img '
'alt="This image is the movie poster for Stand by Me" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/stand%20by%20me%20movie%20poster.jpg" '
'width="360"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/197550/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/197550/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B28%5D=28">Music & '
'Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 4, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>"<em>I never had any friends '
'later on like the ones I had when I was twelve. Jesus, does '
'anyone?"</em></p><p>Join us at the Library for a screening of <a '
'href="https://www.youtube.com/watch?v=jaiZ6ZQoO-Y">Stand by '
'Me</a> (1986). \xa0</p><p>Directed by Rob Reiner (1947-2025), '
'this coming-of-age drama begins with one simple question: "Do '
'you guys want to see a dead body?" On the eve of junior high, '
'four friends venture out to find the body of a missing boy in '
'what would be their last (and most memorable) adventure '
'together.</p><p>\xa0</p><p><em><strong>This movie is Rated R by '
'the </strong></em><a '
'href="https://www.filmratings.com/"><em><strong>MPAA</strong></em></a><em><strong>.</strong></em></p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/movie-screening-stand-me-197550" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-eok5rh-wturt6kvu8212riwis4fuha8qtu0e6x6homm" '
'name="form_build_id" type="hidden" '
'value="form-eOK5RH-WturT6KvU8212RiwiS4FUhA8QtU0E6X6homM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Anna\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c3a2a0afa2b1a883ada6b4a0a2ada2a2adafaaa1b1a2b1baedacb1a4">\n'
'<span class="__cf_email__" '
'data-cfemail="3c5d5f505d4e577c52594b5f5d525d5d5250555e4e5d4e4512534e5b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180887>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180887',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180887/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180887/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180887/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b9d6d7d5d0d7dccbdcdff9d7dccedad8d7d8d8d7d5d0dbcbd8cbc097d6cbde">\n'
'<span class="__cf_email__" '
'data-cfemail="432c2d2f2a2d26312625032d263420222d22222d2f2a213122313a6d2c3124">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161845>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161845',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/02" '
'href="/events/week/2026/08/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/02" '
'href="/events/day/2026/08/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, August 2, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219115>
{'event_url': 'https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219115',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Creative Writing and Bookmaking Camp for Grades '
'3-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219114">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219115">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219116">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219115/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219115/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219114">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a writer entering grades '
'3-5? Join Miss Rebecca to write, write, write! In this '
'<strong>three-day </strong>creative writing camp, we will design '
"our own books. We'll learn about the bookmaking process, then "
'write stories of our own. <strong>This is a three-class series. '
'Please plan to attend all three classes (3:30 p.m. August 3, 4, '
'and 5) as lessons build on one another.\xa0</strong></p><p>This '
'program is intended for children entering grades 3-5 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#05666d6c6961456b607266646b64646b696c677764777c2b6a7762"><span '
'class="__cf_email__" '
'data-cfemail="4c2f242520280c22293b2f2d222d2d2220252e3e2d3e3562233e2b">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4133272e39012f243622202f20202f2d2823332033386f2e3326">\n'
'<span class="__cf_email__" '
'data-cfemail="c1b3a7aeb981afa4b6a2a0afa0a0afada8a3b3a0b3b8efaeb3a6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219101>
{'event_url': 'https://www.newcanaanlibrary.org/event/summer-stories-and-crafts-ages-2-and-3-years-219101',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Summer Stories and Crafts for Ages 2 and 3 Years</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/03" '
'href="/events/week/2026/08/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/03" '
'href="/events/day/2026/08/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room + Program Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:30am–11:15am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219096">\n'
' 06/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219097">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219098">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219099">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219100">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/summer-stories-and-crafts-ages-2-and-3-years-219101">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219101/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219101/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B29%5D=29">Storytimes</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B93%5D=93">Ages '
'0-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 2 to 3.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Children ages 2-3 years and '
'their caregivers, join Miss Rebecca for summer-themed stories, '
'songs, movement, and crafts!</p><p>This class will meet for 6 '
'weeks (10:30 a.m. Mondays, June 29 through August 3). '
'<strong>You must register individually for each date that you '
'plan to attend. </strong>Feel free to pick the weeks that work '
'for you!</p><p><strong>During the first five minutes of the '
'program, those who are on the waitlist may be admitted if there '
'are open spaces. If there is no one on the waitlist present '
'after 5 minutes have passed, walk-in attendees may be admitted. '
'We do not guarantee space for anyone on the waitlist or '
'walk-in.</strong></p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#385b5051545c78565d4f5b595659595654515a4a594a4116574a5f"><span '
'class="__cf_email__" '
'data-cfemail="86e5eeefeae2c6e8e3f1e5e7e8e7e7e8eaefe4f4e7f4ffa8e9f4e1">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0270646d7a426c677561636c63636c6e6b607063707b2c6d7065">\n'
'<span class="__cf_email__" '
'data-cfemail="b3c1d5dccbf3ddd6c4d0d2ddd2d2dddfdad1c1d2c1ca9ddcc1d4">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203735>
{'event_url': 'https://www.newcanaanlibrary.org/event/sewing-machine-first-time-ages-8-12-203735',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Sewing Machine First Time for Ages 8-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203733">\n'
' 06/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/sewing-machine-first-time-ages-8-12-203734">\n'
' 07/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/sewing-machine-first-time-ages-8-12-203735">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203735/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203735/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for an introduction to '
'sewing machines. \xa0This class is intended for absolute '
'beginners who have never used a sewing machine before between '
'the ages of 8 and 12! \xa0Instructor LeeAnn will walk students '
"through sewing machine safety, setup and basic use. We'll put "
'our knowledge to use with a beginner friendly project.\xa0\xa0'
'</p><p><em>Registration opens May 1 at 8am. <strong>This '
'workshop will be offered three times (June 22, July 9, and '
'August 4) \xa0this summer to introduce as many kids as possible '
'to the sewing machine. \xa0Please only register for one '
'session.\xa0</strong></em></p><p><strong>These sessions are made '
'possible by a generous grant from the New Canaan Artisans.\xa0'
'</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#fe9d9697929abe909b899d9f909f9f9092979c8c9f8c87d0918c99"><span '
'class="__cf_email__" '
'data-cfemail="9ffcf7f6f3fbdff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#066a6b6f6a6a6374466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="e08c8d898c8c8592a08e859783818e81818e8c898292819299ce8f9287">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203860>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203860',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup! for Grades K-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/03" '
'href="/events/week/2026/08/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/03" '
'href="/events/day/2026/08/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim and Dede Bartlett Auditorium\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203860/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203860/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#bad9d2d3d6defad4dfcdd9dbd4dbdbd4d6d3d8c8dbc8c394d5c8dd"><span '
'class="__cf_email__" '
'data-cfemail="bad9d2d3d6defad4dfcdd9dbd4dbdbd4d6d3d8c8dbc8c394d5c8dd">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e6858e8f8a82a68883918587888787888a8f849487949fc8899481">\n'
'<span class="__cf_email__" '
'data-cfemail="2e4d4647424a6e404b594d4f404f4f4042474c5c4f5c5700415c49">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223494>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223494',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/01" '
'href="/events/week/2026/08/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/01" '
'href="/events/day/2026/08/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223494/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223494/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223494/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#711e1f1d181f14031417311f140612101f10101f1d1813031003085f1e0316"><span '
'class="__cf_email__" '
'data-cfemail="caa5a4a6a3a4afb8afac8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#234b404a4e4a4d4c634d465440424d42424d4f4a415142515a0d4c5144">\n'
'<span class="__cf_email__" '
'data-cfemail="b4dcd7ddd9dddadbf4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219114> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10249
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/silent-book-club-221485>
{'event_url': 'https://www.newcanaanlibrary.org/event/silent-book-club-221485',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Silent Book Club</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/07" '
'href="/events/month/2026/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/07/30" '
'href="/events/week/2026/07/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/07/30" '
'href="/events/day/2026/07/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Merrill Event Lawn\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, July 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221485/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221485/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on July '
'30, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Want to attend a book club but '
'don’t have time to add another book to your list? Looking for '
'ways to gain more tickets to win our Summer Reading Grand Prize? '
'Join the New Canaan Library’s Silent Book Club! Bring your '
'current read, a cozy blanket or lawn chair, and join us on the '
'library green for a silent reading session. We will have an hour '
'of uninterrupted reading time and an (optional) half hour of '
'socialization.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/silent-book-club-221485" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-dusmvcxwighvqyliixuaonwm93rph-chwxemilchcpm" '
'name="form_build_id" type="hidden" '
'value="form-dusmvCxwigHvQyliiXuaoNwM93rph_ChwXeMilcHcPM"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cea5b9b7a0a0ab8ea0abb9adafa0afafa0a2a7acbcafbcb7e0a1bca9">\n'
'<span class="__cf_email__" '
'data-cfemail="305b47495e5e55705e554753515e51515e5c5952425142491e5f4257">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945057">\n'
' (203) 594-5057\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211690>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211690',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>CANCELED Advanced: Learn Music Theory through Piano for '
'Ages 8-14</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/01" '
'href="/events/week/2026/08/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/01" '
'href="/events/day/2026/08/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:15pm\n'
' </div>\n'
'<div '
'class="lc-event-info-cancelled"><strong>Cancelled</strong></div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211688">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211689">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211690/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211690/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-advanced-learn-music-theory-through-piano-ages-8-14-211687">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 8 to 14.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to perfect your favorite piano pieces '
'through advance music theory, foundation for education '
'development and musical advancement. Children/Teens should have '
'piano experience. <strong>Best for ages 8-14</strong>. Class '
'will cover, theory concepts, major and minor scales, '
'dynamics/articulation, modes, triads/inversions, 7th chords, '
'performance enhancement, expression/interpretation, performance '
'etiquette and public speaking. The last class will include a '
'final Concert with everyone performing their pieces!\xa0'
'</p><p><strong>Please plan to attend all 3 sessions. This class '
'meets on 7/11, 7/18, & 7/25 from 3:45pm-4:45pm.\xa0'
'</strong></p><p>\xa0</p><p>Cary Wang, 10th Grader at Horace Mann '
'School and Pre-college student at Manhattan School of Music '
'(MSM), has been invited to perform in Carnegie Hall 16 times, '
'Vienna’s prestigious Ehrbar Hall and Mozarthaus, London Royal '
'Albert Hall, Lincoln Center, Kaufman Center, and Yamaha Artist '
'Piano Concert Series with Yamaha Artist Mr. Jose Ramon Mendez, '
'etc. Cary has been an avid volunteer leader of the Piano Village '
'Foundation by hosting a quarterly Music Appreciation workshop '
'for young kids and teaching them basic music theory. This '
'initiative provides music education to children and youth, '
'fostering personal growth, confidence, and community engagement '
'through musical expression. It aims to cultivate core values and '
'lifelong interest in the arts, integrating these with academic '
'and leadership development.</p><p>Cary has won many piano '
'competitions since the age of six.\xa0He was named as Sole '
'Winner of the 2022-23 Music Teachers National Association '
'Connecticut State Junior Piano Competition, the Alternate Winner '
'of the 2023-24, and the Winner of the 2019-20 highly competitive '
'MSM Piano Concerto Competition, the 2020 Gold Award, and the '
'2017 Silver Award of Piano group SinoVision the Teen’s Talent '
'Show. Cary made his orchestral debut with the New York Concerti '
'Sinfonietta in January 2020 at Lincoln Center. Since 2016, Cary '
'has been invited to perform at the New Canaan Inn, Waveny '
'Lifecare Network, twice a year to share the joy with the seniors '
'there. He received the 2023 Presidential Service Award for his '
'work.</p><p>Cary’s Music Channel - <a '
'href="https://www.youtube.com/@johnwang5673">https://www.youtube.com/@johnwang5673</a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#24474c4d4840644a415347454a45454a484d465645565d0a4b5643"><span '
'class="__cf_email__" '
'data-cfemail="a3c0cbcacfc7e3cdc6d4c0c2cdc2c2cdcfcac1d1c2d1da8dccd1c4">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#34575c5d5850745a514357555a55555a585d564655464d1a5b4653">\n'
'<span class="__cf_email__" '
'data-cfemail="c8aba0a1a4ac88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:52 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:52 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:52 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211694>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211694',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>CANCELED Learn to Play Piano Through Your Favorite Movie '
'Themes for Ages 7-12</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/01" '
'href="/events/week/2026/08/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/01" '
'href="/events/day/2026/08/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:30pm–3:15pm\n'
' </div>\n'
'<div '
'class="lc-event-info-cancelled"><strong>Cancelled</strong></div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211692">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211693">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3157/lc_featured_image?alternative_text=Picture%20of%20Cary%20Wang%20playing%20piano"><img '
'alt="Picture of Cary Wang playing piano" class="img-fluid" '
'height="456" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-07/Cary%20Wang.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211694/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/211694/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Capacity has been reached. '
'Additional registrants will be placed on the waitlist.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/hold-learn-play-piano-through-your-favorite-movie-themes-ages-6-12-211691">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 7 to 12.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join accomplished pianist and '
'teen volunteer Cary Wang to learn basic music concepts and start '
'piano playing through your favorite movie themes. The program is '
'designed for children ages 7-12 with some piano experience.\xa0'
'The children will explore the notes on the keyboard and learn '
'the note values, key signatures, dynamics and triads. There will '
'be a final Concert with everyone performing their favorite movie '
'themes!\xa0</p><p><strong>\xa0Please plan to attend all 3 '
'sessions. This class meets on 7/11, 7/18, & 7/25 from '
'3:45pm-4:45pm.\xa0</strong></p><p><em>Sample\xa0songs '
'include:</em>\xa0\xa0Let It Go, How Far I’ll Go, Can’t Stop This '
'Feeling, Into The Unknown, We Don’t Talk About Bruno, Kung Fu '
'Fighting, Hakuna Matata, A Whole New World, You’ve Got a Friend '
'In Me, Star Wars (Main Theme), Fly Love, Can You Feel The Love '
'Tonight and Beauty and The Beast.</p><p>Cary Wang, Junior at '
'Horace Mann School and Pre-college student at Manhattan School '
'of Music (MSM), has been invited to perform in Carnegie Hall 17 '
'times, Vienna’s prestigious Ehrbar Hall and Mozart Haus, London '
'Royal Albert Hall, Lincoln Center, Kaufman Center, and Yamaha '
'Artist Piano Concert, etc. Cary has been an avid volunteer '
'leader at the New Canaan Library and has held similar sessions '
'like this in the last 2 years. This initiative aims to help '
'students expand music education and develop a lifelong interest '
'in art appreciation by integrating with academic and leadership '
'development.</p><p>Cary started his piano learning journey at 6 '
'and has been Piano major at Manhattan School of Music since 2018 '
'with the honor of Dean’s List for a 4.0 GPA each year.\xa0 At '
'the age of 9, he accomplished Piano Level 10 Assessment of Royal '
'Conservatory Music Development Program with First Honors. In '
'June 2023, he completed the highest level, Associate Diploma of '
'Piano Performance with Honors.\xa0Cary has won many piano '
'competitions since 6. He was named as the Alternative Winner of '
'the 2024-25 Music Teachers National Association (“MTNA”) '
'Connecticut Senior Piano Competition, the Sole Winner of the '
'2022-23 MTNA Connecticut Junior Piano Competition, the Alternate '
'Winner of 2023-24, and the Sole Winner of 2019-20 highly '
'competitive MSM Piano Concerto Competition. Cary made his '
'orchestral debut with the New York Concerti Sinfonietta in '
'January 2020 at Lincoln Center.</p><p>Cary’s Music Channel -\xa0'
'<a '
'href="https://www.youtube.com/@johnwang5673"><strong>https://www.youtube.com/@johnwang5673</strong></a></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#117279787d75517f746672707f70707f7d7873637063683f7e6376"><span '
'class="__cf_email__" '
'data-cfemail="4a292223262e0a242f3d292b242b2b24262328382b38336425382d">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d4b7bcbdb8b094bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">\n'
'<span class="__cf_email__" '
'data-cfemail="1d7e757471795d73786a7e7c737c7c7371747f6f7c6f6433726f7a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221989> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161847> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168845> (referer: https://www.newcanaanlibrary.org/events/list?page=7)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168847> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217706> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=9> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223496> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180889> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-5-8-218094> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/birds-prey-k-6th-197700> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/silent-book-club-226191> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221990> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219114>
{'event_url': 'https://www.newcanaanlibrary.org/event/creative-writing-and-bookmaking-camp-grades-3-5-219114',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Creative Writing and Bookmaking Camp for Grades '
'3-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/03" '
'href="/events/week/2026/08/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/03" '
'href="/events/day/2026/08/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219114">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219115">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/creative-writing-and-bookmaking-camp-grades-3-5-219116">\n'
' 08/05/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219114/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219114/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B258%5D=258">Languages & '
'Writing</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 3rd Grade to 5th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a writer entering grades '
'3-5? Join Miss Rebecca to write, write, write! In this '
'<strong>three-day </strong>creative writing camp, we will design '
"our own books. We'll learn about the bookmaking process, then "
'write stories of our own. <strong>This is a three-class series. '
'Please plan to attend all three classes (3:30 p.m. August 3, 4, '
'and 5) as lessons build on one another.\xa0</strong></p><p>This '
'program is intended for children entering grades 3-5 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#ddbeb5b4b1b99db3b8aabebcb3bcbcb3b1b4bfafbcafa4f3b2afba"><span '
'class="__cf_email__" '
'data-cfemail="c2a1aaabaea682aca7b5a1a3aca3a3acaeaba0b0a3b0bbecadb0a5">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f082969f88b09e958793919e91919e9c999282918289de9f8297">\n'
'<span class="__cf_email__" '
'data-cfemail="a7d5c1c8dfe7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221989>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221989',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221989/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221989/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 4, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#335c5d5f5a5d56415655735d564450525d52525d5f5a514152414a1d5c4154"><span '
'class="__cf_email__" '
'data-cfemail="5e31303237303b2c3b381e303b293d3f303f3f3032373c2c3f2c2770312c39">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221989" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-egsf7wxutbdcawf0wxm5nogmgc9v7ztmt5wpzbbghls" '
'name="form_build_id" type="hidden" '
'value="form-EGSF7WxuTbdcaWF0wxm5NogmGC9v7ztMt5wPzbbghls"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#95e1fef0ecd5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">\n'
'<span class="__cf_email__" '
'data-cfemail="8ffbe4eaf6cfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161847>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161847',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/16" '
'href="/events/week/2026/08/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/16" '
'href="/events/day/2026/08/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, August 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168845>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168845',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/04" '
'href="/events/week/2026/08/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/04" '
'href="/events/day/2026/08/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168845/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168845/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168845/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#214249484d45614f445642404f40404f4d4843534053580f4e5346"><span '
'class="__cf_email__" '
'data-cfemail="52313a3b3e36123c372531333c33333c3e3b302033202b7c3d2035">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d5a7b3baad95bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">\n'
'<span class="__cf_email__" '
'data-cfemail="e597838a9da58b809286848b84848b898c879784979ccb8a9782">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168847>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168847',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/18" '
'href="/events/week/2026/08/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/18" '
'href="/events/day/2026/08/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168847/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168847/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168847/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#8deee5e4e1e9cde3e8faeeece3ecece3e1e4efffecfff4a3e2ffea"><span '
'class="__cf_email__" '
'data-cfemail="47242f2e2b23072922302426292626292b2e253526353e69283520">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ff8d999087bf919a889c9e919e9e9193969d8d9e8d86d1908d98">\n'
'<span class="__cf_email__" '
'data-cfemail="92e0f4fdead2fcf7e5f1f3fcf3f3fcfefbf0e0f3e0ebbcfde0f5">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217706>
{'event_url': 'https://www.newcanaanlibrary.org/event/magic-gathering-meetup-ages-12-18-217706',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Magic: The Gathering Meetup for ages 12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/19" '
'href="/events/week/2026/08/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/19" '
'href="/events/day/2026/08/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 19, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217704">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/magic-gathering-meetup-ages-12-18-217705">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/magic-gathering-meetup-ages-12-18-217706">\n'
' 08/19/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5265/lc_featured_image?alternative_text=Magic%20the%20Gathering%20Logo%20over%20a%20digital%20painting%20of%20fantasy%20knights%20and%20creatures"><img '
'alt="Magic the Gathering Logo over a digital painting of fantasy '
'knights and creatures" class="img-fluid" height="240" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/magic-the-gathering-header-1-314913123.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217706/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217706/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 19, 2026 @ 6:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us for a friendly session '
'of Modern Casual Magic: The Gathering! Beginners and players of '
'any experience are more than welcome to join. Please bring your '
'own standard deck if possible!\xa0</p><p>The Library will '
'provide mats and dice. We also have a few standard decks '
'available if you do not have one. Please pre-register.\xa0'
'</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/magic-gathering-meetup-ages-12-18-217706" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-a7lvodndb0dogytjdllpsahcxlbqnrrejadusfbie98" '
'name="form_build_id" type="hidden" '
'value="form-a7lVoDndb0doGyTjdlLPSAhcxLBqnrrejAdUSFBIe98"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4b26233e3f3f240b252e3c282a252a2a25272229392a39326524392c">\n'
'<span class="__cf_email__" '
'data-cfemail="5b36332e2f2f341b353e2c383a353a3a35373239293a29227534293c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223496>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223496',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/15" '
'href="/events/week/2026/08/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/15" '
'href="/events/day/2026/08/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223496/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223496/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223496/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#afc0c1c3c6c1caddcac9efc1cad8cccec1cecec1c3c6cdddceddd681c0ddc8"><span '
'class="__cf_email__" '
'data-cfemail="93fcfdfffafdf6e1f6f5d3fdf6e4f0f2fdf2f2fdfffaf1e1f2e1eabdfce1f4">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#28404b414541464768464d5f4b494649494644414a5a495a5106475a4f">\n'
'<span class="__cf_email__" '
'data-cfemail="1b737872767275745b757e6c787a757a7a75777279697a69623574697c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180889>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180889',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/18" '
'href="/events/week/2026/08/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/18" '
'href="/events/day/2026/08/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180889/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180889/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180889/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0669686a6f6863746360466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="442b2a282d2a21362122042a213327252a25252a282d263625363d6a2b3623">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-5-8-218094>
{'event_url': 'https://www.newcanaanlibrary.org/event/beaded-jumping-frogs-grades-5-8-218094',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beaded Jumping Frogs for Grades 5-8</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/14" '
'href="/events/week/2026/08/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/14" '
'href="/events/day/2026/08/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, August 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218094/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218094/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Learn to bead a jumping frog '
'using seed beads and wire. For students in grades 5-8 in Fall '
'2026.</p><p><em>Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#63000b0a0f07230d061400020d02020d0f0a011102111a4d0c1104"><span '
'class="__cf_email__" '
'data-cfemail="016269686d65416f647662606f60606f6d6863736073782f6e7366">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0965646065656c7b49676c7e6a686768686765606b7b687b7027667b6e">\n'
'<span class="__cf_email__" '
'data-cfemail="cfa3a2a6a3a3aabd8fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:53 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:53 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/birds-prey-k-6th-197700>
{'event_url': 'https://www.newcanaanlibrary.org/event/birds-prey-k-6th-197700',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Raptors and Reptiles with Christine's Critters for "
'K-8th</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/19" '
'href="/events/week/2026/08/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/19" '
'href="/events/day/2026/08/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 19, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5613/lc_featured_image?alternative_text=Small%20Frog%20atop%20a%20persons%20hand"><img '
'alt="Small Frog atop a persons hand" class="img-fluid" '
'height="320" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Frog.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/197700/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/197700/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade Kindergarten to 8th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us as Christine\'s Critters '
'visits for a one-hour live program, offering an unforgettable, '
'immersive experience bringing us face to face with 4–5 '
'incredible birds of prey, including hawks, owls, and falcons, as '
'well as rescued reptiles. This is more than just a presentation, '
'it’s a dynamic, interactive journey into the world of raptors '
'and reptiles, where each animal has a unique story of survival '
'and resilience. Through engaging discussions, we explore their '
'vital roles in the ecosystem, the challenges they face due to '
'human impact, and how we can all contribute to their '
'conservation. <strong>Best for families with elementary-aged '
'children and up!\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#bcdfd4d5d0d8fcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb"><span '
'class="__cf_email__" '
'data-cfemail="91f2f9f8fdf5d1fff4e6f2f0fff0f0fffdf8f3e3f0e3e8bffee3f6">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a0d2c6cfd8e0cec5d7c3c1cec1c1ceccc9c2d2c1d2d98ecfd2c7">\n'
'<span class="__cf_email__" '
'data-cfemail="7200141d0a321c170511131c13131c1e1b100013000b5c1d0015">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:53 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10253
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/silent-book-club-226191>
{'event_url': 'https://www.newcanaanlibrary.org/event/silent-book-club-226191',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Silent Book Club</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/13" '
'href="/events/week/2026/08/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/13" '
'href="/events/day/2026/08/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Merrill Event Lawn\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226191/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/226191/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 13, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Want to attend a book club but '
'don’t have time to add another book to your list? Looking for '
'ways to gain more tickets to win our Summer Reading Grand Prize? '
'Join the New Canaan Library’s Silent Book Club! Bring your '
'current read, a cozy blanket or lawn chair, and join us on the '
'library green for a silent reading session. We will have an hour '
'of uninterrupted reading time and an (optional) half hour of '
'socialization.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/silent-book-club-226191" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-rwv7fty6-dzo9yyubtlt6ghfts2z-mhbxixvpa4oyqu" '
'name="form_build_id" type="hidden" '
'value="form-rwV7fTY6-dZO9yyUbtlt6GHFTs2z_mHbxiXVpa4OyQU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e388949a8d8d86a38d869480828d82828d8f8a819182919acd8c9184">\n'
'<span class="__cf_email__" '
'data-cfemail="5239252b3c3c37123c372531333c33333c3e3b302033202b7c3d2035">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221990>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221990',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/18" '
'href="/events/week/2026/08/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/18" '
'href="/events/day/2026/08/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221990/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221990/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 18, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#c7a8a9abaea9a2b5a2a187a9a2b0a4a6a9a6a6a9abaea5b5a6b5bee9a8b5a0"><span '
'class="__cf_email__" '
'data-cfemail="4a25242623242f382f2c0a242f3d292b242b2b24262328382b38336425382d">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221990" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-qacm1bzp7yyykldt9ulyuf84f8xyezf2hsfh4xwfkwa" '
'name="form_build_id" type="hidden" '
'value="form-QAcm1BzP7yYYKLDt9UlYUF84f8xyeZF2hsfH4XwFKWA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#394d525c4079575c4e5a585758585755505b4b584b4017564b5e">\n'
'<span class="__cf_email__" '
'data-cfemail="dfabb4baa69fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218085> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218084> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219112> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219111> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217709> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/diy-frog-stuffy-7-year-olds-199604> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180888> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218083> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217698> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168846> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203861> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218085>
{'event_url': 'https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218085',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Board Game Design Camp for Grades 5-9</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/13" '
'href="/events/week/2026/08/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/13" '
'href="/events/day/2026/08/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218082">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218083">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218084">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/board-game-design-camp-grades-5-9-218085">\n'
' 08/13/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218085/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218085/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/board-game-design-camp-grades-5-9-218082">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 9th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Design a board game working '
"either solo or with a team. \xa0We'll explore game mechanics, "
'strategies and storytelling and use MakerLab equipment to create '
'a prototype of our games. \xa0This workshop meets over four '
'days: August 10-13. \xa0Please be sure you can attend all four '
'days. \xa0\xa0</p><p><em>Sign up either solo or as a team. \xa0'
'If registering as a team, please register the team lead and list '
'other team members when prompted. \xa0All attendees need to be '
'in grades 5-9 in Fall 2026. \xa0Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#b6d5dedfdad2f6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1"><span '
'class="__cf_email__" '
'data-cfemail="0b686362676f4b656e7c686a656a6a65676269796a79722564796c">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9bf7f6f2f7f7fee9dbf5feecf8faf5fafaf5f7f2f9e9fae9e2b5f4e9fc">\n'
'<span class="__cf_email__" '
'data-cfemail="d1bdbcb8bdbdb4a391bfb4a6b2b0bfb0b0bfbdb8b3a3b0a3a8ffbea3b6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218084>
{'event_url': 'https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218084',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Board Game Design Camp for Grades 5-9</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/12" '
'href="/events/week/2026/08/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/12" '
'href="/events/day/2026/08/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 12, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218082">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218083">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/board-game-design-camp-grades-5-9-218084">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218085">\n'
' 08/13/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218084/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218084/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/board-game-design-camp-grades-5-9-218082">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 9th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Design a board game working '
"either solo or with a team. \xa0We'll explore game mechanics, "
'strategies and storytelling and use MakerLab equipment to create '
'a prototype of our games. \xa0This workshop meets over four '
'days: August 10-13. \xa0Please be sure you can attend all four '
'days. \xa0\xa0</p><p><em>Sign up either solo or as a team. \xa0'
'If registering as a team, please register the team lead and list '
'other team members when prompted. \xa0All attendees need to be '
'in grades 5-9 in Fall 2026. \xa0Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#a6c5cecfcac2e6c8c3d1c5c7c8c7c7c8cacfc4d4c7d4df88c9d4c1"><span '
'class="__cf_email__" '
'data-cfemail="3e5d5657525a7e505b495d5f505f5f5052575c4c5f4c4710514c59">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7519181c19191007351b100216141b14141b191c170714070c5b1a0712">\n'
'<span class="__cf_email__" '
'data-cfemail="dfb3b2b6b3b3baad9fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219112>
{'event_url': 'https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219112',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Story Starters Camp for Grades 1-3</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/12" '
'href="/events/week/2026/08/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/12" '
'href="/events/day/2026/08/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 12, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219110">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219111">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/story-starters-camp-grades-1-3-219112">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1259/lc_featured_image?alternative_text=Pencil%20writing%20on%20paper"><img '
'alt="Pencil writing on paper" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-05/Untitled%20design.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219112/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219112/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/story-starters-camp-grades-1-3-219110">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a budding writer '
'entering Grades 1 to 3? Join Miss Rebecca for a three-day '
'storytelling–and story writing–extravaganza! We’ll play games to '
'get imaginations flowing, then put ideas to paper in creative '
'ways. <strong>Please plan to join us for all three classes '
"(Monday, Tuesday, and Wednesday). </strong>We'll develop our "
"stories over the course of the week, and we'll learn about a "
'different aspect of storytelling each day.\xa0</p><p>This '
'program is intended for children entering grades 1-3 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#5f3c3736333b1f313a283c3e313e3e3133363d2d3e2d2671302d38"><span '
'class="__cf_email__" '
'data-cfemail="dcbfb4b5b0b89cb2b9abbfbdb2bdbdb2b0b5beaebdaea5f2b3aebb">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9ceefaf3e4dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb">\n'
'<span class="__cf_email__" '
'data-cfemail="4230242d3a022c273521232c23232c2e2b203023303b6c2d3025">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/12" '
'href="/events/week/2026/08/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/12" '
'href="/events/day/2026/08/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 12, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221792/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221792/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221792/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here: <a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_MMu4t574R0ePL0xrkKE3ww%23%2fregistration&c=E,1,LOdNEoyrDrQ1V2b4K8GsCjEhjETJ_ftAh-JAmIK8GNEojvGzkZvuOMWcncvIDCuwFbVkW1TJ1ylCox030IPcENWOfRBIBVAyRtQnQv7M&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_MMu4t574R0ePL0xrkKE3ww#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3358444a5d5d56735d564450525d52525d5f5a514152414a1d5c4154">\n'
'<span class="__cf_email__" '
'data-cfemail="c5aeb2bcababa085aba0b2a6a4aba4a4aba9aca7b7a4b7bcebaab7a2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219111>
{'event_url': 'https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219111',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Story Starters Camp for Grades 1-3</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/11" '
'href="/events/week/2026/08/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/11" '
'href="/events/day/2026/08/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219110">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/story-starters-camp-grades-1-3-219111">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219112">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1259/lc_featured_image?alternative_text=Pencil%20writing%20on%20paper"><img '
'alt="Pencil writing on paper" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-05/Untitled%20design.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219111/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219111/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/story-starters-camp-grades-1-3-219110">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a budding writer '
'entering Grades 1 to 3? Join Miss Rebecca for a three-day '
'storytelling–and story writing–extravaganza! We’ll play games to '
'get imaginations flowing, then put ideas to paper in creative '
'ways. <strong>Please plan to join us for all three classes '
"(Monday, Tuesday, and Wednesday). </strong>We'll develop our "
"stories over the course of the week, and we'll learn about a "
'different aspect of storytelling each day.\xa0</p><p>This '
'program is intended for children entering grades 1-3 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#3d5e555451597d53584a5e5c535c5c5351545f4f5c4f4413524f5a"><span '
'class="__cf_email__" '
'data-cfemail="cdaea5a4a1a98da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f280949d8ab29c978591939c93939c9e9b908093808bdc9d8095">\n'
'<span class="__cf_email__" '
'data-cfemail="6113070e19210f041602000f00000f0d0803130013184f0e1306">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217709>
{'event_url': 'https://www.newcanaanlibrary.org/event/dungeons-dragons-death-save-repeat-oneshot-ages-12-18-217709',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Dungeons & Dragons - Strange Wonders in Fairyland: '
'Oneshot for ages 12 to 18</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/13" '
'href="/events/week/2026/08/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/13" '
'href="/events/day/2026/08/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Craig B. Tate Conference Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 12:15pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5673/lc_featured_image?alternative_text=digital%20illustration%20of%20a%20fantastical%20land%20with%20brightly%20colored%20creatures%20"><img '
'alt="digital illustration of a fantastical land with brightly '
'colored creatures " class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20121640.png" '
'width="376"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217709/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217709/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 9:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Take your party on a quest to '
'return an orb of unstable magic to its rightful place in a '
'whimsical wonderland. Will their journey prove fruitful? Or was '
'it all just a strange dream?\xa0</p><p>Newcomers to D&D are '
'welcome, we provide a characters sheet as well as dice and '
'minis! We will take a break for a snack between 2:15 and 2:45. '
'Pre-registration is required.\xa0</p><p>\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5f32372a2b2b301f313a283c3e313e3e3133363d2d3e2d2671302d38">\n'
'<span class="__cf_email__" '
'data-cfemail="fc919489888893bc92998b9f9d929d9d9290959e8e9d8e85d2938e9b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/diy-frog-stuffy-7-year-olds-199604>
{'event_url': 'https://www.newcanaanlibrary.org/event/diy-frog-stuffy-7-year-olds-199604',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Make Your Own Frog Bean Bag for 7 years old</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/13" '
'href="/events/week/2026/08/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/13" '
'href="/events/day/2026/08/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, August 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5247/lc_featured_image?alternative_text=Assorted%20crafting%20supplies"><img '
'alt="Assorted crafting supplies" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-01/Crafting%20%281%29_3.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199604/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/199604/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 7.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Miss Dajana to make your '
'hand sewn frog bean bag. No prior experience necessary.\xa0'
'</p><p><strong>This class is intended for children ages 7 years '
'old.\xa0</strong></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#a8cbc0c1c4cce8c6cddfcbc9c6c9c9c6c4c1cadac9dad186c7dacf"><span '
'class="__cf_email__" '
'data-cfemail="8fece7e6e3ebcfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Dajana Martinez\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5a3e373b282e33343f201a343f2d393b343b3b34363338283b28237435283d">\n'
'<span class="__cf_email__" '
'data-cfemail="d9bdb4b8abadb0b7bca399b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945002">\n'
' (203) 594-5002\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:54 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:54 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180888>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180888',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/11" '
'href="/events/week/2026/08/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/11" '
'href="/events/day/2026/08/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180888/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180888/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180888/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e18e8f8d888f84938487a18f849682808f80808f8d888393809398cf8e9386">\n'
'<span class="__cf_email__" '
'data-cfemail="046b6a686d6a61766162446a617367656a65656a686d667665767d2a6b7663">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:54 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218083>
{'event_url': 'https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218083',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Board Game Design Camp for Grades 5-9</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/11" '
'href="/events/week/2026/08/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/11" '
'href="/events/day/2026/08/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218082">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/board-game-design-camp-grades-5-9-218083">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218084">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218085">\n'
' 08/13/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218083/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218083/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'Visit the <a '
'href="/event/board-game-design-camp-grades-5-9-218082">first '
'event</a> to register.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 9th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Design a board game working '
"either solo or with a team. \xa0We'll explore game mechanics, "
'strategies and storytelling and use MakerLab equipment to create '
'a prototype of our games. \xa0This workshop meets over four '
'days: August 10-13. \xa0Please be sure you can attend all four '
'days. \xa0\xa0</p><p><em>Sign up either solo or as a team. \xa0'
'If registering as a team, please register the team lead and list '
'other team members when prompted. \xa0All attendees need to be '
'in grades 5-9 in Fall 2026. \xa0Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#d4b7bcbdb8b094bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3"><span '
'class="__cf_email__" '
'data-cfemail="d3b0bbbabfb793bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#711d1c181d1d1403311f140612101f10101f1d1813031003085f1e0316">\n'
'<span class="__cf_email__" '
'data-cfemail="412d2c282d2d2433012f243622202f20202f2d2823332033386f2e3326">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217698>
{'event_url': 'https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217698',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Frog Coin Pouch: Take and Make Craft Pick Up for Ages 12 '
'to 19</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/12" '
'href="/events/week/2026/08/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/12" '
'href="/events/day/2026/08/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 12, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217694">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217696">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217698">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217700">\n'
' 08/26/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5676/lc_featured_image?alternative_text=Photo%20of%20the%20top%20and%20bottom%20of%20a%20coin%20purse%20shaped%20like%20a%20frog.%20"><img '
'alt="Photo of the top and bottom of a coin purse shaped like a '
'frog. " class="img-fluid" height="460" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20125104.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217698/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217698/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 12, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 19.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Swing by the library to pick up '
'the supplies for a make-at-home craft! Everything you need will '
"be in your kit, so it's perfect for a study break or long "
'weekend trip.\xa0</p><p>Note: This event is listed as a window '
'of time for pick-ups, there is no class or program associated '
'with this craft! You can pick up your kit starting at 5 PM until '
'the library closes. Kits that are not claimed, will be put out '
'for the general public. Thank you!\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/craft-take-and-make-craft-pick-ages-12-19-217698" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ktzydyutheerz0ga4iapbfldqx6ojfhy6bs3kcbirby" '
'name="form_build_id" type="hidden" '
'value="form-KtZYdYuTheerZ0Ga4IaPbFLDqX6OJFHY6BS3KCBIRbY"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d7babfa2a3a3b897b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">\n'
'<span class="__cf_email__" '
'data-cfemail="aec3c6dbdadac1eec0cbd9cdcfc0cfcfc0c2c7ccdccfdcd780c1dcc9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168846>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168846',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/11" '
'href="/events/week/2026/08/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/11" '
'href="/events/day/2026/08/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 11, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168846/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168846/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168846/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#45262d2c2921052b203226242b24242b292c273724373c6b2a3722"><span '
'class="__cf_email__" '
'data-cfemail="32515a5b5e56725c574551535c53535c5e5b504053404b1c5d4055">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9fedf9f0e7dff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">\n'
'<span class="__cf_email__" '
'data-cfemail="9ceefaf3e4dcf2f9ebfffdf2fdfdf2f0f5feeefdeee5b2f3eefb">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-3> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/stockbridge-militia-company-native-communitys-experience-american-revolution-220631> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180893> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161846> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=10> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/ken-burns-american-revolution-episode-4> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180894> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188897> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-2> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218082> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219110> (referer: https://www.newcanaanlibrary.org/events/list?page=8)
2026-06-16 04:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221992> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203861>
{'event_url': 'https://www.newcanaanlibrary.org/event/chess-meetup-grades-k-5-203861',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Chess Meetup! for Grades K-5</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/10" '
'href="/events/week/2026/08/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/10" '
'href="/events/day/2026/08/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–6:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203856">\n'
' 07/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203857">\n'
' 07/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203858">\n'
' 07/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203859">\n'
' 07/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/chess-meetup-grades-k-5-203860">\n'
' 08/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/chess-meetup-grades-k-5-203861">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203861/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/203861/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event allows you to '
'register for multiple occurrences at the same time.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 5 to Over 21.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Families can join us for a chess '
'classes featuring a mixture of instruction and supervised play. '
'Parents, kids, and grandparents of all levels are welcome!\xa0 '
'Participants who are new to the game will learn the basic rules '
'and strategy while more experienced players will have the '
'opportunity to further advance their skills.\xa0The class will '
'follow\xa0the unique executive functions based curriculum '
'developed by National Master Ian Harris to help students develop '
'important life skills while learning chess.\xa0 Classes will be '
'instructed by the team of coaches\xa0from RedBandit Chess.\xa0'
'Ideal for the whole family to learn and play together! Best for '
'families with children aged 5 and older.\xa0</p><p>Please '
'register for each individual date.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#73101b1a1f17331d160410121d12121d1f1a110112010a5d1c0114"><span '
'class="__cf_email__" '
'data-cfemail="c6a5aeafaaa286a8a3b1a5a7a8a7a7a8aaafa4b4a7b4bfe8a9b4a1">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4e2d2627222a0e202b392d2f202f2f2022272c3c2f3c3760213c29">\n'
'<span class="__cf_email__" '
'data-cfemail="701318191c14301e150713111e11111e1c1912021102095e1f0217">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-3>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-3',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 3: The Times That Try '
'Men’s Souls (July 1776 – January 1777)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/17" '
'href="/events/week/2026/09/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/17" '
'href="/events/day/2026/09/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, September 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5761/lc_featured_image?alternative_text=White%20Hessian%20soldiers%20with%20muskets%20and%20pointy%20gold%20helmets%20in%20the%20throes%20of%20battle"><img '
'alt="White Hessian soldiers with muskets and pointy gold helmets '
'in the throes of battle" class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%203%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212080/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212080/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 17, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p class="Paragraph SCXW191061508 '
'BCX0"><em>The American Revolution, </em>a landmark documentary '
'by Ken Burns, Sarah Botstein, and David Schmidt, examines how '
'our nation’s founding was at once a war for independence, a '
'civil war, and a world war that impacted millions.\xa0We are '
'pleased to present screenings of all six episodes in their '
'entirety for America 250. \xa0\xa0</p><p class="Paragraph '
'SCXW191061508 BCX0"><strong>Episode Three: The Times That Try '
'Men’s Souls (July 1776 – January 1777)</strong>\xa0</p><p '
'class="Paragraph SCXW191061508 BCX0">General George Washington '
'and his Continental Army move to defend New York City as British '
'ships begin arriving in the harbor. They are the first to join a '
'massive invasion fleet with tens of thousands of soldiers, '
'sailors, and marines under the joint command of Admiral Richard '
'Howe and his brother General William Howe. Thousands of hired '
'German soldiers, known collectively as “Hessians,” will also be '
'part of the offensive.\xa0</p><p class="Paragraph SCXW191061508 '
'BCX0">In the south, the British launch an attack on Charleston '
'Harbor in South Carolina. Their warships bombard a Patriot fort '
'on Sullivan’s Island, but the rebels return fire, inflicting '
'serious damage. The British are forced back to sea and won’t '
'attempt to recapture a southern colony again for two and a half '
'years.\xa0</p><p class="Paragraph SCXW191061508 BCX0">Seeing an '
'opportunity to push back against settlements encroaching into '
'their territory, Cherokee warriors led by Tsi’yu-gunsini — '
'“Dragging Canoe” in English — attack settlers in the '
'backcountry. Militiamen from Virginia, North Carolina, South '
'Carolina, and Georgia march into Cherokee Country and burn towns '
'in retaliation. Dragging Canoe continues to fight, but older '
'Cherokee leaders sue for peace and cede land that extends the '
'western borders of the southern states.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-ken-burns-american-revolution-screening-episode-3" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-xi9dkuqd6jbcxc9n-itzlhla0xmvzu6pprx-3bbthng" '
'name="form_build_id" type="hidden" '
'value="form-xi9dkUQd6JBcXc9n-iTZlhla0xMvzu6ppRx_3bBtHng"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#492439263b3d2809272c3e2a282728282725202b3b283b3067263b2e">\n'
'<span class="__cf_email__" '
'data-cfemail="b6dbc6d9c4c2d7f6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:55 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:55 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/stockbridge-militia-company-native-communitys-experience-american-revolution-220631>
{'event_url': 'https://www.newcanaanlibrary.org/event/stockbridge-militia-company-native-communitys-experience-american-revolution-220631',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The Stockbridge Militia Company: A Native Community’s '
'Experience of the American Revolution</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/28" '
'href="/events/week/2026/09/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/28" '
'href="/events/day/2026/09/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, September 28, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 7:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5726/lc_featured_image?alternative_text=Bronze%20statue%20of%20Stockbridge%20Militia%20Native%20American%20soldier"><img '
'alt="Bronze statue of Stockbridge Militia Native American '
'soldier" class="img-fluid" height="384" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/stockbridge%20militia%20statue.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/220631/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/220631/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 28, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p class="Paragraph SCXW177882621 '
'BCX0">From the earliest days of the Revolutionary War, the '
'Stockbridge Militia Company, formed by the Mohicans of '
'Stockbridge, Massachusetts, fought with distinction in George '
'Washington’s Continental Army. Hear about the Stockbridge '
'Militia, their role in the War of Independence, and their '
'subsequent forced removal from western Massachusetts by the '
'early 1780s.\xa0</p><p class="Paragraph SCXW177882621 '
'BCX0">Seeing action from the 1775 Siege of Boston (Breeds Hill '
'aka Bunker Hill), Battle of Valcour Island with Benedict Arnold, '
'the American Victory at the Battle of Saratoga, Battle of '
'Monmouth, Washington’s encampment at Valley Forge, and the '
'disastrous 1778 Battle of Kingsbridge, the Stockbridge Militia '
'were stalwart supporters of American independence and an elite '
'and effective light infantry unit. We are pleased to offer this '
'talk by Dr. Jeffrey Bendremer, Tribal Historic Preservation '
'Officer for the Stockbridge-Munsee Community, as part of our '
'America 250 programming. \xa0 \xa0\xa0</p><p class="Paragraph '
'SCXW211267210 BCX0"><strong>Jeffrey Bendremer,</strong> Ph.D, '
'RPA received his doctorate in Anthropology from the University '
'of Connecticut and is currently the Tribal Historic Preservation '
'Officer for the Stockbridge-Munsee Community. Jeff was founder '
'and director of Salish Kootenai College’s Tribal Historic '
'Preservation Program, the only 4-year degree in THP in America, '
'and held professorships at Mercy College, Indiana University, '
'College of New Rochelle, Eastern Connecticut State University, '
'and Connecticut College, teaching courses in Native American '
'studies, anthropology, sociology, and history. Dr. Bendremer '
'also worked in tribal archaeology and cultural resource '
'management archaeology, including 10 years as Manager of the '
'Mohegan Tribe of Connecticut’s historic\xa0preservation program '
'and NAGPRA Coordinator for the Connecticut Museum of Natural '
'History and the New York State Office of Parks, Recreation and '
'Historic Preservation. He has presented and published numerous '
'academic papers on Indigenous history and culture in the '
'Northeast. He advocates for better ethics in archaeology, '
'improved partnerships with Indian tribes, and cutting-edge '
'methods in historic preservation.\xa0\xa0</p><p class="Paragraph '
'SCXW211267210 BCX0">Image: Statue of Stockbridge Militia Captain '
'Daniel Nimham, located in Fishkill, New York.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/stockbridge-militia-company-native-communitys-experience-american-revolution-220631" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-myq3vndhdrychdcfvkcw5luurh3btlkai2uyfw8joii" '
'name="form_build_id" type="hidden" '
'value="form-MYq3VndHDRychdCFVkCW5luURH3bTlkai2uYfW8joII"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#670a1708151306270902100406090606090b0e051506151e49081500">\n'
'<span class="__cf_email__" '
'data-cfemail="a7cad7c8d5d3c6e7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:55 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180893>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180893',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/15" '
'href="/events/week/2026/09/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/15" '
'href="/events/day/2026/09/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180893/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180893/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180893/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b4dbdad8dddad1c6d1d2f4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">\n'
'<span class="__cf_email__" '
'data-cfemail="e788898b8e8982958281a78982908486898686898b8e859586959ec9889580">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/16" '
'href="/events/week/2026/09/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/16" '
'href="/events/day/2026/09/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, September 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221793/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221793/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221793/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here:<strong> </strong><a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_i4gI492qT661_ooqPUIWMA%23%2fregistration&c=E,1,2LLEf1HfEUBBKpZBap4Jyow8IcPiOX_v9uOQ7qKzTRLA2kHGbmC9P978QJ_K0dfsKYhvvMxvuMf9n5cCS3X4695I9cNXOt3JQ0xNh7KacYmMnz0,&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_i4gI492qT661_ooqPUIWMA#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a9c2ded0c7c7cce9c7ccdecac8c7c8c8c7c5c0cbdbc8dbd087c6dbce">\n'
'<span class="__cf_email__" '
'data-cfemail="ddb6aaa4b3b3b89db3b8aabebcb3bcbcb3b1b4bfafbcafa4f3b2afba">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161846>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161846',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/09" '
'href="/events/week/2026/08/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/09" '
'href="/events/day/2026/08/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, August 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/ken-burns-american-revolution-episode-4>
{'event_url': 'https://www.newcanaanlibrary.org/event/ken-burns-american-revolution-episode-4',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 4: Conquer by a Drawn '
'Game (January 1777 – February 1778)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/24" '
'href="/events/week/2026/09/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/24" '
'href="/events/day/2026/09/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, September 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5762/lc_featured_image?alternative_text=Painting%20of%20American%20colonists%20firing%20on%20British%20redcoats%20with%20a%20cannon"><img '
'alt="Painting of American colonists firing on British redcoats '
'with a cannon" class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%204%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/205949/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/205949/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 24, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><em>The American Revolution, '
'</em>a landmark documentary by Ken Burns, Sarah Botstein, and '
'David Schmidt, examines how our nation’s founding was at once a '
'war for independence, a civil war, and a world war that impacted '
'millions.\xa0We are pleased to present screenings of all six '
'episodes in their entirety for America 250. \xa0\xa0</p><p '
'class="Paragraph SCXW61919393 BCX0"><strong>Episode Four: '
'Conquer by a Drawn Game (January 1777 – February '
'1778)</strong>\xa0</p><p class="Paragraph SCXW61919393 '
'BCX0">Benjamin Franklin lobbied in Paris for French support, '
'while George Washington executed a brilliant, surprise tactical '
'victory at Princeton, NJ, against British forces in early 1777. '
'Despite being stalled at the Assunpink Creek, Washington '
'outmaneuvered British General Cornwallis by attacking the '
'reserves before vanishing, providing a major morale boost to the '
'Patriot cause.\xa0</p><p class="Paragraph SCXW61919393 '
'BCX0">Simultaneously, the British command structure faltered as '
'generals Howe and Burgoyne pursued contradictory 1777 '
'strategies, failing to align their campaigns in Albany, and '
'instead dividing their forces. The fighting also intensified in '
'the interior, where the Battle of Oriskany showcased the '
'devastating impact of the war on the Six Nations of the '
'Haudenosaunee, effectively turning the conflict into a civil war '
'among indigenous communities.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/ken-burns-american-revolution-episode-4" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ocjgpjnyuvnol-abamlsbqq8twkmkqu3jv0ejizg92u" '
'name="form_build_id" type="hidden" '
'value="form-OCjgpJnYuVnoL-AbaMLsbQQ8twKmkQu3Jv0eJizG92U"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2c415c435e584d6c42495b4f4d424d4d4240454e5e4d5e5502435e4b">\n'
'<span class="__cf_email__" '
'data-cfemail="8de0fde2fff9eccde3e8faeeece3ecece3e1e4efffecfff4a3e2ffea">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180894>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180894',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/22" '
'href="/events/week/2026/09/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/22" '
'href="/events/day/2026/09/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180894/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180894/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180894/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0867666461666d7a6d6e48666d7f6b696669696664616a7a697a7126677a6f">\n'
'<span class="__cf_email__" '
'data-cfemail="9bf4f5f7f2f5fee9fefddbf5feecf8faf5fafaf5f7f2f9e9fae9e2b5f4e9fc">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188897>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188897',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Suicide Prevention Training: Question, Persuade and '
'Refer</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/18" '
'href="/events/week/2026/09/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/18" '
'href="/events/day/2026/09/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, September 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188889">\n'
' 01/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188890">\n'
' 02/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188891">\n'
' 03/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188892">\n'
' 04/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188893">\n'
' 05/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188897">\n'
' 09/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188898">\n'
' 10/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188899">\n'
' 11/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188900">\n'
' 12/18/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3860/lc_featured_image?alternative_text=Town%20of%20New%20Canaan%20Logo"><img '
'alt="Town of New Canaan Logo" class="img-fluid" height="143" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2025-01/town%20logo%20green_0.png" '
'width="141"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188897/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188897/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 18, 2026 @ 11:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>In partnership with the '
'Health Department of New Canaan, we present a suicide prevention '
'QPR class.\xa0</strong></p><p>QPR stands for Question, Persuade, '
'and Refer — the 3 simple steps anyone can use to help prevent '
'suicide.</p><p>Just as people trained in CPR and the Heimlich '
'Maneuver help save thousands of lives, those trained in QPR '
'learn how to recognize the warning signs of a suicide crisis and '
'how to question, persuade, and refer someone to help. Each year '
'thousands of Americans, like you, are saying "Yes" to saving the '
'life of a friend, colleague, sibling, or neighbor.</p><p>This '
'training will certify you as a QPR gatekeeper.</p><p>What is a '
'gatekeeper?</p><p>According to the Surgeon General’s National '
'Strategy for Suicide Prevention (2001), a gatekeeper is someone '
'in a position to recognize a crisis and the warning signs that '
'someone may be contemplating suicide.</p><p>Gatekeepers can be '
'anyone, but include parents, friends, neighbors, teachers, '
'ministers, doctors, nurses, office supervisors, squad leaders, '
'foremen, police officers, advisors, caseworkers, firefighters, '
'and many others who are strategically positioned to recognize '
'and refer someone at risk of suicide.</p><p><strong>As a '
'QPR-trained Gatekeeper you will learn to:</strong></p><ul '
'type="disc"><li><strong>Recognize the warning signs of '
'suicide</strong></li><li><strong>Know how to offer '
'hope</strong></li><li><strong>Know how to get help and save a '
'life</strong></li></ul></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#4d2223212423283f282b0d23283a2e2c232c2c2321242f3f2c3f3463223f2a"><span '
'class="__cf_email__" '
'data-cfemail="1a75747673747f687f7c5a747f6d797b747b7b74767378687b68633475687d">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-suicide-prevention-training-question-persuade-and-refer-188897" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-0eehfutdlqbt5uy69fazhxtc-vnin2t-p8wbjrbvgjy" '
'name="form_build_id" type="hidden" '
'value="form-0eeHfUtdlqBT5Uy69fazhxTC_Vnin2t_p8wbjRbvgjY"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#8ceafce5e0e0e5e3e2ebedfee8e2e9fecce2e9fbefede2edede2e0e5eefeedfef5a2e3feeb">\n'
'<span class="__cf_email__" '
'data-cfemail="1a7c6a7376767375747d7b687e747f685a747f6d797b747b7b74767378687b68633475687d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-2>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-2',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 2: An Asylum for Mankind '
'(May 1775 – July 1776)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/10" '
'href="/events/week/2026/09/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/10" '
'href="/events/day/2026/09/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, September 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5759/lc_featured_image?alternative_text=Detail%20from%20a%20color%20painting%20of%20the%20head%20of%20George%20Washington"><img '
'alt="Detail from a color painting of the head of George '
'Washington" class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%202%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212078/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212078/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 10, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p class="Paragraph SCXW95589328 '
'BCX0"><em>The American Revolution, </em>a landmark documentary '
'by Ken Burns, Sarah Botstein, and David Schmidt, examines how '
'our nation’s founding was at once a war for independence, a '
'civil war, and a world war that impacted millions.\xa0We are '
'pleased to present screenings of all six episodes in their '
'entirety for America 250. \xa0</p><p class="Paragraph '
'SCXW95589328 BCX0"><strong>Episode Two: An Asylum for Mankind '
'(May 1775 – July 1776)</strong>\xa0</p><p class="Paragraph '
'SCXW95589328 BCX0">Delegates from all thirteen colonies convene '
'for the Second Continental Congress at the Pennsylvania State '
'House in Philadelphia. The representatives remain divided — some '
'hopeful for reconciliation with Britain, others increasingly '
'committed to permanent separation.\xa0</p><p class="Paragraph '
'SCXW95589328 BCX0">In the north, Patriot forces led by Benedict '
'Arnold and Ethan Allen capture Fort Ticonderoga on Lake '
'Champlain after the British garrison surrenders without '
'resistance. Soon after, Congress officially forms the '
'Continental Army and appoints <a class="Hyperlink SCXW95589328 '
'BCX0" '
'href="https://www.pbs.org/kenburns/the-american-revolution/key-figures-of-the-american-revolution" '
'target="_blank">George Washington</a> as '
'Commander-in-Chief.\xa0\xa0</p><p class="Paragraph SCXW95589328 '
'BCX0">The British launch repeated assaults on Patriot positions '
'at Breed’s Hill and Bunker Hill outside the city of Boston. The '
'British eventually seize the high ground and drive the Patriots '
'from the Charlestown Peninsula, but they suffer heavy casualties '
'— nearly 40% of their troops are killed or wounded in the Battle '
'of Bunker Hill.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-ken-burns-american-revolution-screening-episode-2" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-qv8mfc8xyda1-phwbjhvirnwalcnefcrc-rsa9w-zbk" '
'name="form_build_id" type="hidden" '
'value="form-Qv8mFc8xYdA1-pHWbjhVIrnwALcNEfcRC_rSa9W_Zbk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#bcd1ccd3cec8ddfcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb">\n'
'<span class="__cf_email__" '
'data-cfemail="583528372a2c3918363d2f3b393639393634313a2a392a2176372a3f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218082>
{'event_url': 'https://www.newcanaanlibrary.org/event/board-game-design-camp-grades-5-9-218082',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Board Game Design Camp for Grades 5-9</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/10" '
'href="/events/week/2026/08/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/10" '
'href="/events/day/2026/08/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/board-game-design-camp-grades-5-9-218082">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218083">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218084">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/board-game-design-camp-grades-5-9-218085">\n'
' 08/13/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218082/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/218082/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 5th Grade to 9th Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Design a board game working '
"either solo or with a team. \xa0We'll explore game mechanics, "
'strategies and storytelling and use MakerLab equipment to create '
'a prototype of our games. \xa0This workshop meets over four '
'days: August 10-13. \xa0Please be sure you can attend all four '
'days. \xa0\xa0</p><p><em>Sign up either solo or as a team. \xa0'
'If registering as a team, please register the team lead and list '
'other team members when prompted. \xa0All attendees need to be '
'in grades 5-9 in Fall 2026. \xa0Registration opens July 1 at '
'8am.</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#2c4f444540486c42495b4f4d424d4d4240454e5e4d5e5502435e4b"><span '
'class="__cf_email__" '
'data-cfemail="6f0c0706030b2f010a180c0e010e0e0103060d1d0e1d1641001d08">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Laura Miller\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cda1a0a4a1a1a8bf8da3a8baaeaca3acaca3a1a4afbfacbfb4e3a2bfaa">\n'
'<span class="__cf_email__" '
'data-cfemail="2d4140444141485f6d43485a4e4c434c4c4341444f5f4c5f5403425f4a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219110>
{'event_url': 'https://www.newcanaanlibrary.org/event/story-starters-camp-grades-1-3-219110',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Story Starters Camp for Grades 1-3</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/10" '
'href="/events/week/2026/08/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/10" '
'href="/events/day/2026/08/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
" Arlene H. Grushkin Children's Program Room + "
'Program Room B\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Monday, August 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/story-starters-camp-grades-1-3-219110">\n'
' 08/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219111">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/story-starters-camp-grades-1-3-219112">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1259/lc_featured_image?alternative_text=Pencil%20writing%20on%20paper"><img '
'alt="Pencil writing on paper" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-05/Untitled%20design.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219110/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/219110/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B24%5D=24">Making & '
'Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B97%5D=97">Grades '
'K-5</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 8:00am.</li>\n'
'<li class="lc-messages__message">This event is part of a series. '
'If you register for this first event, you will also be '
'registering for future occurrences.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'grade 1st Grade to 3rd Grade.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Are you a budding writer '
'entering Grades 1 to 3? Join Miss Rebecca for a three-day '
'storytelling–and story writing–extravaganza! We’ll play games to '
'get imaginations flowing, then put ideas to paper in creative '
'ways. <strong>Please plan to join us for all three classes '
"(Monday, Tuesday, and Wednesday). </strong>We'll develop our "
"stories over the course of the week, and we'll learn about a "
'different aspect of storytelling each day.\xa0</p><p>This '
'program is intended for children entering grades 1-3 in Fall '
'2026.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#91f2f9f8fdf5d1fff4e6f2f0fff0f0fffdf8f3e3f0e3e8bffee3f6"><span '
'class="__cf_email__" '
'data-cfemail="680b0001040c28060d1f0b090609090604010a1a091a1146071a0f">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9fedf9f0e7dff1fae8fcfef1fefef1f3f6fdedfeede6b1f0edf8">\n'
'<span class="__cf_email__" '
'data-cfemail="ccbeaaa3b48ca2a9bbafada2adada2a0a5aebeadbeb5e2a3beab">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221992>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221992',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/15" '
'href="/events/week/2026/09/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/15" '
'href="/events/day/2026/09/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221992/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221992/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 15, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#84ebeae8edeae1f6e1e2c4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3"><span '
'class="__cf_email__" '
'data-cfemail="2c4342404542495e494a6c42495b4f4d424d4d4240454e5e4d5e5502435e4b">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221992" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-ddnzvabpgcijjupvf5xi8immzdyi9je-2gqwhhhkksu" '
'name="form_build_id" type="hidden" '
'value="form-ddnZVABpGCijJupvF5Xi8iMmZDyI9Je_2GqWHHhkKSU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#70041b1509301e150713111e11111e1c1912021102095e1f0217">\n'
'<span class="__cf_email__" '
'data-cfemail="d5a1beb0ac95bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-labor-day-221598> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161850> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180892> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161849> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221991> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-1> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180891> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223498> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-labor-day-221598>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-labor-day-221598',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Labor Day</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/07" '
'href="/events/week/2026/09/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/07" '
'href="/events/day/2026/09/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Monday, September 7, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:56 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:56 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161850>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161850',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/06" '
'href="/events/week/2026/09/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/06" '
'href="/events/day/2026/09/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, September 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180892>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180892',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/08" '
'href="/events/week/2026/09/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/08" '
'href="/events/day/2026/09/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180892/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180892/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180892/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#204f4e4c494e45524546604e455743414e41414e4c4942524152590e4f5247">\n'
'<span class="__cf_email__" '
'data-cfemail="8ee1e0e2e7e0ebfcebe8cee0ebf9edefe0efefe0e2e7ecfceffcf7a0e1fce9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161849>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161849',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/30" '
'href="/events/week/2026/08/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/30" '
'href="/events/day/2026/08/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, August 30, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221991>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221991',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/01" '
'href="/events/week/2026/09/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/01" '
'href="/events/day/2026/09/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221991/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221991/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 1, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#a4cbcac8cdcac1d6c1c2e4cac1d3c7c5cac5c5cac8cdc6d6c5d6dd8acbd6c3"><span '
'class="__cf_email__" '
'data-cfemail="7718191b1e1912051211371912001416191616191b1e150516050e59180510">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221991" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-yqgr6ufz1sfu9vbv-10p9-wo-n-xznumlvhvluivcko" '
'name="form_build_id" type="hidden" '
'value="form-YQgr6UfZ1SfU9VbV-10p9-wo-n_XzNumlvHvLuiVcKo"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#75011e100c351b100216141b14141b191c170714070c5b1a0712">\n'
'<span class="__cf_email__" '
'data-cfemail="e29689879ba28c879581838c83838c8e8b809083909bcc8d9085">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-1>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-1',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 1: In Order to Be Free '
'(May 1754 – May 1775)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/03" '
'href="/events/week/2026/09/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/03" '
'href="/events/day/2026/09/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, September 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5758/lc_featured_image?alternative_text=Black%20and%20white%20image%20of%20white%20male%20American%20colonist%20surrounded%20by%20white%20female%20American%20conlonists"><img '
'alt="Black and white image of white male American colonist '
'surrounded by white female American conlonists" '
'class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%201%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212077/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/212077/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 3, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p class="Paragraph SCXW168421263 '
'BCX0"><em>The American Revolution, </em>a landmark documentary '
'by Ken Burns, Sarah Botstein, and David Schmidt, examines how '
'our nation’s founding was at once a war for independence, a '
'civil war, and a world war that impacted millions.\xa0We are '
'pleased to present screenings of all six episodes in their '
'entirety for America 250.\xa0</p><p class="Paragraph '
'SCXW168421263 BCX0"><strong>Episode One: In Order to Be Free '
'(May 1754 – May 1775)</strong>\xa0</p><p class="Paragraph '
'SCXW168421263 BCX0">Led by George Washington a small force of '
'Virginia militiamen and their Native-American allies ambushes '
'unsuspecting French soldiers, kicking off the Seven Years’ War '
'(known in North America as the French and Indian War). During '
'the war, George III becomes King of Great Britain following the '
'death of his grandfather George II. The war rages across the '
'globe until 1763 with the signing of the Treaty of Paris, in '
'which victorious Britain acquires French possessions in North '
'America and Spanish Florida.\xa0</p><p class="Paragraph '
'SCXW168421263 BCX0">In the years following the end of the war, '
'the British Government issues royal proclamations and '
'parliamentary laws that limit colonists’ expansion westward and '
'impose new taxes on common goods such as paper, glass, lead, and '
'tea. These imperial reforms, as they are thought of in Britain, '
'are met with unrest in the colonies, leading to violent protest '
'and calls for boycotts of British goods, as well as the '
'formation of new groups like the Sons of Liberty and Daughters '
'of Liberty.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-ken-burns-american-revolution-screening-episode-1" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-xtbpr80dhv8d5czlizgsqqs-gdtwk44u-zfpoabw090" '
'name="form_build_id" type="hidden" '
'value="form-xTbpr80DHv8d5CZliZgSQQS_GDTWK44u_zFpoaBw090"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4b263b24393f2a0b252e3c282a252a2a25272229392a39326524392c">\n'
'<span class="__cf_email__" '
'data-cfemail="573a2738252336173932203436393636393b3e352536252e79382530">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180891>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180891',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/01" '
'href="/events/week/2026/09/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/01" '
'href="/events/day/2026/09/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180891/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180891/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180891/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#3a55545653545f485f5c7a545f4d595b545b5b54565358485b48431455485d">\n'
'<span class="__cf_email__" '
'data-cfemail="dbb4b5b7b2b5bea9bebd9bb5beacb8bab5babab5b7b2b9a9baa9a2f5b4a9bc">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223498>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223498',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/29" '
'href="/events/week/2026/08/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/29" '
'href="/events/day/2026/08/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223498/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223498/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223498/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#b6d9d8dadfd8d3c4d3d0f6d8d3c1d5d7d8d7d7d8dadfd4c4d7c4cf98d9c4d1"><span '
'class="__cf_email__" '
'data-cfemail="d6b9b8babfb8b3a4b3b096b8b3a1b5b7b8b7b7b8babfb4a4b7a4aff8b9a4b1">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#076f646e6a6e6968476962706466696666696b6e657566757e29687560">\n'
'<span class="__cf_email__" '
'data-cfemail="2b434842464245446b454e5c484a454a4a45474249594a59520544594c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223562> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180890> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161848> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=11> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168848> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223497> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217700> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/mosaic-coaster-workshop-teens-ages-12-18-217690> (referer: https://www.newcanaanlibrary.org/events/list?page=9)
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 9364
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223562>
{'event_url': 'https://www.newcanaanlibrary.org/event/byob-bring-your-own-book-club-adults-223562',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>BYOB (Bring Your Own Book) Club for Adults</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/25" '
'href="/events/week/2026/08/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/25" '
'href="/events/day/2026/08/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Bartlett Terrace\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:30pm–7:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223562/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223562/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 25, 2026 @ 6:30pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Want to read more this summer? '
'Looking for ways to gain more tickets to win our Summer Reading '
'Grand Prize? Join our Reference Librarians at our BYOB (Bring '
'Your Own Book) club! The rules are simple: bring exactly one '
'book you’ve recently read, an old favorite, or a hidden gem, and '
'give us a quick, spoiler-free pitch on why it’s worth a look (or '
'not). \xa0It’s the perfect, low-pressure way to chat about '
'books, meet fellow readers, and leave with a list of new '
'recommendations.</p></div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/byob-bring-your-own-book-club-adults-223562" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-v3awro4omfkqphqdhxhwebp0-0kwcw8hfd5sllp9kh0" '
'name="form_build_id" type="hidden" '
'value="form-v3AwrO4oMFkQpHqdHxhWebp0-0KwCW8HfD5Sllp9Kh0"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' James\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ef85839a8b96af818a988c8e818e8e8183868d9d8e9d96c1809d88">\n'
'<span class="__cf_email__" '
'data-cfemail="2c46405948556c42495b4f4d424d4d4240454e5e4d5e5502435e4b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:57 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:57 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180890>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180890',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/25" '
'href="/events/week/2026/08/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/25" '
'href="/events/day/2026/08/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180890/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180890/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180890/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7916171510171c0b1c1f39171c0e1a181718181715101b0b180b0057160b1e">\n'
'<span class="__cf_email__" '
'data-cfemail="7a15141613141f081f1c3a141f0d191b141b1b14161318081b08035415081d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161848>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-summer-sundays-161848',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Summer Sundays</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/23" '
'href="/events/week/2026/08/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/23" '
'href="/events/day/2026/08/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, August 23, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-repeating-dates">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161839">\n'
' 06/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161840">\n'
' 06/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161841">\n'
' 07/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161842">\n'
' 07/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161843">\n'
' 07/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161844">\n'
' 07/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161845">\n'
' 08/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161846">\n'
' 08/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161847">\n'
' 08/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161848">\n'
' 08/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161849">\n'
' 08/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/library-closed-summer-sundays-161850">\n'
' 09/06/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168848>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-morning-music-kurt-gallagher-168848',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Morning Music with Kurt Gallagher</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/25" '
'href="/events/week/2026/08/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/25" '
'href="/events/day/2026/08/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:15am–11:00am\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168838">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168839">\n'
' 06/23/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168840">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168841">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168842">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168843">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168844">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168845">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168846">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/hold-morning-music-kurt-gallagher-168847">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/hold-morning-music-kurt-gallagher-168848">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3567/lc_featured_image?alternative_text=Cartoon%20Man%20with%20guitar"><img '
'alt="Cartoon Man with guitar" class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2024-10/Kurt%20Gallagher.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168848/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168848/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/168848/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B28%5D=28">Music '
'& Performances</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B39%5D=39">Kids</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B93%5D=93">Ages 0-5</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Kurt Gallagher as he plays '
'some favorite kids’ songs for 45 minutes of fun! Best for '
'families with children ages 5 and under!\xa0Drop-in for the '
'first 125 families to arrive.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility and '
'Accommodations</div>\n'
'</h4>\n'
'<div class="field-container"><p>We strive to facilitate access '
'to information and Library services for all patrons. If you have '
'questions about accessibility or a request for accommodation, '
'please phone 203-594-5002, email the librarian in charge of this '
'program (see contact info above), or email <a '
'href="/cdn-cgi/l/email-protection#e6858e8f8a82a68883918587888787888a8f849487949fc8899481"><span '
'class="__cf_email__" '
'data-cfemail="e98a8180858da9878c9e8a888788888785808b9b889b90c7869b8e">[email\xa0'
'protected]</span></a> with as much lead time as '
'possible.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Child and Caregiver Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p>This program is designed for '
'children and their caregivers to participate together. Please '
'plan to attend and be engaged with your child throughout this '
'program. Please avoid side conversations or cell phone use for '
'the duration of the program. Drop offs will not be '
'permitted.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Rebecca Fox\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1062767f68507e756773717e71717e7c7972627162693e7f6277">\n'
'<span class="__cf_email__" '
'data-cfemail="265440495e664843514547484747484a4f445447545f08495441">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223497>
{'event_url': 'https://www.newcanaanlibrary.org/event/weekly-plant-clinic-uconn-master-gardeners-223497',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Weekly Plant Clinic with UCONN Master Gardeners</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/22" '
'href="/events/week/2026/08/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/22" '
'href="/events/day/2026/08/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Saturday, August 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 10:00am–12:30pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223486">\n'
' 06/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223487">\n'
' 06/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223488">\n'
' 06/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223489">\n'
' 06/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223490">\n'
' 07/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223491">\n'
' 07/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223492">\n'
' 07/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223493">\n'
' 07/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223494">\n'
' 08/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223495">\n'
' 08/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223496">\n'
' 08/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223497">\n'
' 08/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/weekly-plant-clinic-uconn-master-gardeners-223498">\n'
' 08/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5783/lc_featured_image?alternative_text=business%20card%20for%20master%20gardener"><img '
'alt="business card for master gardener" class="img-fluid" '
'height="295" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/master%20gardener.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223497/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223497/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/223497/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B43%5D=43">Multigenerational</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Do you need help with plant '
'identification? Insect Damage and disease diagnosis? Plant '
'suggestions? Vegetable growing advice? Invasives management?\xa0'
'UCONN Master Gardeners of Lower Fairfield are standing by to '
'solve your garden issue in this weekly plant '
'clinic.</p><p>Experts from the UCONN Master Gardener Program '
'will be able to answer your questions on the spot, or do '
'research and follow up with you. It is a great chance to meet '
'like-minded garden enthusiasts and nature lovers. Stop by - we '
'are looking forward to meeting you!</p><p><em><strong>This event '
'will take place outside of the front of the library or in the '
'gallery in case of bad weather.</strong></em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#442b2a282d2a21362122042a213327252a25252a282d263625363d6a2b3623"><span '
'class="__cf_email__" '
'data-cfemail="bed1d0d2d7d0dbccdbd8fed0dbc9dddfd0dfdfd0d2d7dcccdfccc790d1ccd9">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Heather Lem Cimino\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#adc5cec4c0c4c3c2edc3c8daceccc3ccccc3c1c4cfdfccdfd483c2dfca">\n'
'<span class="__cf_email__" '
'data-cfemail="8ee6ede7e3e7e0e1cee0ebf9edefe0efefe0e2e7ecfceffcf7a0e1fce9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217700>
{'event_url': 'https://www.newcanaanlibrary.org/event/craft-take-and-make-craft-pick-ages-12-19-217700',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Beaded Frog Keychain: Take and Make Craft Pick Up for Ages '
'12 to 19</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/26" '
'href="/events/week/2026/08/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/26" '
'href="/events/day/2026/08/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 26\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Kontulis Family Storytime Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, August 26, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217694">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217696">\n'
' 07/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217698">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/craft-take-and-make-craft-pick-ages-12-19-217700">\n'
' 08/26/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5674/lc_featured_image?alternative_text=Beaded%20frog%20keychain"><img '
'alt="Beaded frog keychain" class="img-fluid" height="355" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/Screenshot%202026-04-20%20122517.png" '
'width="292"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217700/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217700/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B24%5D=24">Making '
'& Crafting</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'August 26, 2026 @ 5:00pm.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 19.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Swing by the library to pick up '
'the supplies for a make-at-home craft! Everything you need will '
"be in your kit, so it's perfect for a study break or long "
'weekend trip.\xa0</p><p>Note: This event is listed as a window '
'of time for pick-ups, there is no class or program associated '
'with this craft! You can pick up your kit starting at 5 PM until '
'the library closes. Kits that are not claimed, will be put out '
'for the general public. Thank you!\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/craft-take-and-make-craft-pick-ages-12-19-217700" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-so5ctqcx2hn01xuszfurcimxvtcwd6tshpbbjenvhbk" '
'name="form_build_id" type="hidden" '
'value="form-SO5ctqCx2hn01xUSzfURCiMXvTcWd6TshpbBjeNVHBk"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#aec3c6dbdadac1eec0cbd9cdcfc0cfcfc0c2c7ccdccfdcd780c1dcc9">\n'
'<span class="__cf_email__" '
'data-cfemail="6f02071a1b1b002f010a180c0e010e0e0103060d1d0e1d1641001d08">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/mosaic-coaster-workshop-teens-ages-12-18-217690>
{'event_url': 'https://www.newcanaanlibrary.org/event/mosaic-coaster-workshop-teens-ages-12-18-217690',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Mosaic Coaster Workshop for Teens (ages 12-18)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/08" '
'href="/events/month/2026/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/08/21" '
'href="/events/week/2026/08/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/08/21" '
'href="/events/day/2026/08/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Anderson MakerLab\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, August 21, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:30pm–4:45pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5600/lc_featured_image?alternative_text=Photograph%20of%20small%20mosaic%20tiles"><img '
'alt="Photograph of small mosaic tiles" class="img-fluid" '
'height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-04/70957057c69a167c2740b018bfd460e3_0.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217690/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/217690/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B135%5D=135">Art '
'& Architecture</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B31%5D=31">Classes & '
'Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will open on July '
'1, 2026 @ 9:00am.</li>\n'
'<li class="lc-messages__message">This event is for registrants '
'age 12 to 18.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join us to learn the basics of '
"mosaic! In this workshop you'll get to design your coaster (or "
'use a pre-made design) before picking out the tiles you want and '
"gluing them down. We'll finish with grout so you have a "
'beautiful piece of functional art!\xa0</p><p><strong>Please '
'pre-register.\xa0</strong></p><p><em>Due to the nature of this '
'program, and out of respect for instructors and fellow patrons, '
'we are not able to accommodate anyone who arrives more than 10 '
'minutes after the scheduled start of the program. Unless prior '
'arrangements have been made with the instructor, latecomers will '
'not be allowed into the program.\xa0Thank you for your '
'understanding and help in making programs at the Library '
'successful and fun for everyone!</em></p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Youth Participation '
'Guidelines</div>\n'
'</h4>\n'
'<div class="field-container"><p><strong>If your child is under '
'12 years old, an adult caregiver must remain in the Children’s '
'Room for the duration of the program</strong>. If your child '
'finishes a program early, or if a child becomes ill, distressed, '
'or behaves in a manner that interferes with other participants’ '
'enjoyment of the program, they may be released into the '
'Children’s Room before the program’s end time. Please ensure '
'that your child knows exactly where to find you at all '
'times.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Megan Hutto\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#234e4b5657574c634d465440424d42424d4f4a415142515a0d4c5144">\n'
'<span class="__cf_email__" '
'data-cfemail="412c293435352e012f243622202f20202f2d2823332033386f2e3326">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180903> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180904> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180905> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-thanksgiving-221599> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closes-5pm-thanksgiving-221600> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188899> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180906> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180903>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180903',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/24" '
'href="/events/week/2026/11/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/24" '
'href="/events/day/2026/11/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180903/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180903/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180903/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9df2f3f1f4f3f8eff8fbddf3f8eafefcf3fcfcf3f1f4ffeffcefe4b3f2effa">\n'
'<span class="__cf_email__" '
'data-cfemail="a4cbcac8cdcac1d6c1c2e4cac1d3c7c5cac5c5cac8cdc6d6c5d6dd8acbd6c3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180904>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180904',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/01" '
'href="/events/week/2026/12/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/01" '
'href="/events/day/2026/12/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180904/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180904/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180904/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#93fcfdfffafdf6e1f6f5d3fdf6e4f0f2fdf2f2fdfffaf1e1f2e1eabdfce1f4">\n'
'<span class="__cf_email__" '
'data-cfemail="2847464441464d5a4d4e68464d5f4b494649494644414a5a495a5106475a4f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180905>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180905',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/08" '
'href="/events/week/2026/12/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/08" '
'href="/events/day/2026/12/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180905/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180905/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180905/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#452a2b292c2b20372023052b203226242b24242b292c273724373c6b2a3722">\n'
'<span class="__cf_email__" '
'data-cfemail="f39c9d9f9a9d96819695b39d968490929d92929d9f9a918192818add9c8194">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-thanksgiving-221599>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-thanksgiving-221599',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Thanksgiving</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/26" '
'href="/events/week/2026/11/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/26" '
'href="/events/day/2026/11/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day '
'lc-date-icon__item--multi-day">\n'
' 26 <div>-</div> 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Thursday, November 26, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' 11/26–11/27\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:58 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/09" '
'href="/events/week/2026/12/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/09" '
'href="/events/day/2026/12/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, December 9, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221796/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221796/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221796/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here: <a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_mFiaBLP6Q9qImy5Dio6M_g%23%2fregistration&c=E,1,zmC1U1UxplJJ903w9ENc2cpdqeJ7LPe3nSwcGjObKoDxenQGQkMiFKVmTtw9tIM_Hm5ZmiJOot1W6erLQ0qDs7605ksPePzwPq3onLh4wUAJ8_5M8Q,,&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_mFiaBLP6Q9qImy5Dio6M_g#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#543f232d3a3a31143a312337353a35353a383d362635262d7a3b2633">\n'
'<span class="__cf_email__" '
'data-cfemail="177c606e797972577972607476797676797b7e756576656e39786570">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:58 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closes-5pm-thanksgiving-221600>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closes-5pm-thanksgiving-221600',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closes at 5PM: Thanksgiving</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/25" '
'href="/events/week/2026/11/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/25" '
'href="/events/day/2026/11/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Wednesday, November 25, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 5:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188899>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188899',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Suicide Prevention Training: Question, Persuade and '
'Refer</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/20" '
'href="/events/week/2026/11/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/20" '
'href="/events/day/2026/11/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, November 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188889">\n'
' 01/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188890">\n'
' 02/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188891">\n'
' 03/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188892">\n'
' 04/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188893">\n'
' 05/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188897">\n'
' 09/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188898">\n'
' 10/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188899">\n'
' 11/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188900">\n'
' 12/18/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3860/lc_featured_image?alternative_text=Town%20of%20New%20Canaan%20Logo"><img '
'alt="Town of New Canaan Logo" class="img-fluid" height="143" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2025-01/town%20logo%20green_0.png" '
'width="141"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188899/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188899/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'November 20, 2026 @ 11:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>In partnership with the '
'Health Department of New Canaan, we present a suicide prevention '
'QPR class.\xa0</strong></p><p>QPR stands for Question, Persuade, '
'and Refer — the 3 simple steps anyone can use to help prevent '
'suicide.</p><p>Just as people trained in CPR and the Heimlich '
'Maneuver help save thousands of lives, those trained in QPR '
'learn how to recognize the warning signs of a suicide crisis and '
'how to question, persuade, and refer someone to help. Each year '
'thousands of Americans, like you, are saying "Yes" to saving the '
'life of a friend, colleague, sibling, or neighbor.</p><p>This '
'training will certify you as a QPR gatekeeper.</p><p>What is a '
'gatekeeper?</p><p>According to the Surgeon General’s National '
'Strategy for Suicide Prevention (2001), a gatekeeper is someone '
'in a position to recognize a crisis and the warning signs that '
'someone may be contemplating suicide.</p><p>Gatekeepers can be '
'anyone, but include parents, friends, neighbors, teachers, '
'ministers, doctors, nurses, office supervisors, squad leaders, '
'foremen, police officers, advisors, caseworkers, firefighters, '
'and many others who are strategically positioned to recognize '
'and refer someone at risk of suicide.</p><p><strong>As a '
'QPR-trained Gatekeeper you will learn to:</strong></p><ul '
'type="disc"><li><strong>Recognize the warning signs of '
'suicide</strong></li><li><strong>Know how to offer '
'hope</strong></li><li><strong>Know how to get help and save a '
'life</strong></li></ul></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#523d3c3e3b3c37203734123c372531333c33333c3e3b302033202b7c3d2035"><span '
'class="__cf_email__" '
'data-cfemail="553a3b393c3b30273033153b302236343b34343b393c372734272c7b3a2732">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-suicide-prevention-training-question-persuade-and-refer-188899" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-t-llgz8mbmdq1dmfcplihaavgy0hnvnj4ubj5volk70" '
'name="form_build_id" type="hidden" '
'value="form-t-llGz8mBmdq1DmFcpLIHaAVgy0hnvnJ4UbJ5VOlk70"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c9afb9a0a5a5a0a6a7aea8bbada7acbb89a7acbeaaa8a7a8a8a7a5a0abbba8bbb0e7a6bbae">\n'
'<span class="__cf_email__" '
'data-cfemail="0462746d68686d6b6a636576606a6176446a617367656a65656a686d667665767d2a6b7663">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180906>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180906',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/15" '
'href="/events/week/2026/12/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/15" '
'href="/events/day/2026/12/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 15, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180906/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180906/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180906/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4728292b2e2922352221072922302426292626292b2e253526353e69283520">\n'
'<span class="__cf_email__" '
'data-cfemail="a6c9c8cacfc8c3d4c3c0e6c8c3d1c5c7c8c7c7c8cacfc4d4c7d4df88c9d4c1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180901> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180899> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-staff-development-day-221607> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180900> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180898> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180901>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180901',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/10" '
'href="/events/week/2026/11/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/10" '
'href="/events/day/2026/11/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 10, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180901/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180901/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180901/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#741b1a181d1a11061112341a110317151a15151a181d160615060d5a1b0613">\n'
'<span class="__cf_email__" '
'data-cfemail="325d5c5e5b5c57405754725c574551535c53535c5e5b504053404b1c5d4055">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180899>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180899',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/27" '
'href="/events/week/2026/10/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/27" '
'href="/events/day/2026/10/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 27, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180899/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180899/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180899/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#422d2c2e2b2c27302724022c273521232c23232c2e2b203023303b6c2d3025">\n'
'<span class="__cf_email__" '
'data-cfemail="b0dfdedcd9ded5c2d5d6f0ded5c7d3d1ded1d1dedcd9d2c2d1c2c99edfc2d7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-staff-development-day-221607>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-staff-development-day-221607',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Staff Development Day</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/19" '
'href="/events/week/2026/11/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/19" '
'href="/events/day/2026/11/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Thursday, November 19, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/04" '
'href="/events/week/2026/11/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/04" '
'href="/events/day/2026/11/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, November 4, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221795/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221795/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221795/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here: <a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_Sufvnm-vTViK8ynXzJFO2g%23%2fregistration&c=E,1,Nu96XfATiYn4WbGvtPaFd_MFrgSvnQntBfWikGVvNe20HE70IHi0a2L_UrefbDOng07MrrQhaD1zChhPQr7jnpupMy6JSscIV1Bgusn4mysqJ3FRdatXr_4fWA,,&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_Sufvnm-vTViK8ynXzJFO2g#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c9a2beb0a7a7ac89a7acbeaaa8a7a8a8a7a5a0abbba8bbb0e7a6bbae">\n'
'<span class="__cf_email__" '
'data-cfemail="a7ccd0dec9c9c2e7c9c2d0c4c6c9c6c6c9cbcec5d5c6d5de89c8d5c0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180900>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180900',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/03" '
'href="/events/week/2026/11/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/03" '
'href="/events/day/2026/11/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 3, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180900/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180900/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180900/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b5dadbd9dcdbd0c7d0d3f5dbd0c2d6d4dbd4d4dbd9dcd7c7d4c7cc9bdac7d2">\n'
'<span class="__cf_email__" '
'data-cfemail="99f6f7f5f0f7fcebfcffd9f7fceefaf8f7f8f8f7f5f0fbebf8ebe0b7f6ebfe">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:20:59 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:20:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180898>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180898',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/20" '
'href="/events/week/2026/10/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/20" '
'href="/events/day/2026/10/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 20, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180898/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180898/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180898/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#95fafbf9fcfbf0e7f0f3d5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">\n'
'<span class="__cf_email__" '
'data-cfemail="640b0a080d0a01160102240a011307050a05050a080d061605161d4a0b1603">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180902> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-salant-lecture-steve-inskeep-198324> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-easter-221632> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=12> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:20:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180924> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:20:59 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:00 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180902>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180902',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/11" '
'href="/events/month/2026/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/11/17" '
'href="/events/week/2026/11/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/11/17" '
'href="/events/day/2026/11/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 17, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180902/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180902/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180902/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#7e11101217101b0c1b183e101b091d1f101f1f1012171c0c1f0c0750110c19">\n'
'<span class="__cf_email__" '
'data-cfemail="c4abaaa8adaaa1b6a1a284aaa1b3a7a5aaa5a5aaa8ada6b6a5b6bdeaabb6a3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180921> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-06-16 04:21:00 [canaan_library] 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-06-16 04:21:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-salant-lecture-steve-inskeep-198324>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-salant-lecture-steve-inskeep-198324',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Salant Lecture Steve Inskeep of NPR: The Role of News '
'Media in American Democracy</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/22" '
'href="/events/week/2026/10/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/22" '
'href="/events/day/2026/10/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, October 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 7:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5282/lc_featured_image?alternative_text=White%20man%20with%20closely%20cropped%20brown%20hair%20wearing%20a%20light%20blue%20shirt%20and%20dark%20blazer%20smiling%20directly%20at%20camera"><img '
'alt="White man with closely cropped brown hair wearing a light '
'blue shirt and dark blazer smiling directly at camera" '
'class="img-fluid" height="480" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-02/seve-inskeep-by-mike-morgan_npr.jpg" '
'width="360"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198324/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/198324/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'October 22, 2026 @ 7:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Award-winning journalist and NPR '
'host Steve Inskeep explores the vital role that news media plays '
'in sustaining American democracy. Drawing on decades of '
'experience covering presidential elections, national politics, '
'public policy, and major world events, Steve Inskeep examines '
'how journalism informs citizens, holds institutions accountable, '
'and shapes public understanding in an era of rapid technological '
'change and increasing political polarization.\xa0</p><p>Through '
'stories from his reporting career and insights into the evolving '
'media landscape, Inskeep will discuss the challenges facing '
'journalists today, the importance of trust and credibility, and '
'the responsibilities of both the press and the public in '
'preserving a healthy democratic society. This timely '
'conversation offers a thoughtful look at the intersection of '
'journalism, civic engagement, and democratic values from one of '
"the nation's most respected voices in news. Elm Street Books "
'will be on site for book sales/signing.\xa0</p><p><strong>Steve '
'Inskeep,\xa0</strong>best known as the host of NPR’s <em>Morning '
'Edition</em> and the morning news podcast\xa0<a '
'href="https://podcasts.apple.com/us/podcast/up-first-from-npr/id1222114325">Up '
'First,</a>has built a reputation across decades for bringing '
'depth, nuance, and clarity to the news, guiding millions of '
'listeners through the most pressing events of our time. Beyond '
'radio, Inskeep is a frequent guest on television programs '
'including <em>Meet the Press</em>, <em>This Week</em>, and '
'<em>PBS NewsHour</em>, and has contributed to leading '
'publications such as <em>The New York Times</em>, <em>The '
'Washington Post</em>, <em>The Wall Street Journal</em>, and '
'<em>The Atlantic</em>. He is the author of four books, most '
'recently <em>Differ We Must: How Lincoln Succeeded in a Divided '
'America.\xa0</em></p><p><em>The Richard Salant Lecture Series is '
'dedicated to deepening the community’s news literacy and '
'understanding of the responsibility of news media in a free '
'society. Programs are intended to foster public interest in news '
'and current affairs and the manner of its dissemination, with a '
'critical eye to how coverage is responsibly and fairly provided. '
'This aligns with the principles of Richard Salant, former '
'President of CBS News who introduced 60 Minutes, CBS Morning '
'News, and Sunday Morning during his tenure. Salant, a New Canaan '
'resident, was a defender of the news media’s First Amendment '
'rights provided its coverage was responsible and fair.\u202f'
'</em></p><p>Photo credit: Mike Morgan</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-salant-lecture-steve-inskeep-198324" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-enubqk3yasj9v6cebfitulikdhur2y7ufan3fkrjxda" '
'name="form_build_id" type="hidden" '
'value="form-eNuBQK3yasj9v6cEBfItULikdHUr2Y7uFAn3fkRJxdA"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#610c110e131500210f041602000f00000f0d0803130013184f0e1306">\n'
'<span class="__cf_email__" '
'data-cfemail="6d001d021f190c2d03081a0e0c030c0c0301040f1f0c1f1443021f0a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:00 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-easter-221632>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-easter-221632',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Easter</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/28" '
'href="/events/week/2027/03/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/28" '
'href="/events/day/2027/03/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sun\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, March 28, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:00 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180924>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180924',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/04" '
'href="/events/month/2027/04">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/04/13" '
'href="/events/week/2027/04/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/04/13" '
'href="/events/day/2027/04/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Apr\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, April 13, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180924/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180924/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180924/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ea85848683848f988f8caa848f9d898b848b8b84868388988b9893c485988d">\n'
'<span class="__cf_email__" '
'data-cfemail="1976777570777c6b7c7f59777c6e7a787778787775707b6b786b6037766b7e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180922> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180919> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180923> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180920> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-presidents-day-221631> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180915> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180918> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180914> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180916> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:00 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:00 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180921>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180921',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/23" '
'href="/events/week/2027/03/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/23" '
'href="/events/day/2027/03/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, March 23, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180921/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180921/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180921/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#97f8f9fbfef9f2e5f2f1d7f9f2e0f4f6f9f6f6f9fbfef5e5f6e5eeb9f8e5f0">\n'
'<span class="__cf_email__" '
'data-cfemail="a6c9c8cacfc8c3d4c3c0e6c8c3d1c5c7c8c7c7c8cacfc4d4c7d4df88c9d4c1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:01 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:01 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:01 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:01 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180922>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180922',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/30" '
'href="/events/week/2027/03/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/30" '
'href="/events/day/2027/03/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, March 30, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180922/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180922/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180922/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4e21202227202b3c2b280e202b392d2f202f2f2022272c3c2f3c3760213c29">\n'
'<span class="__cf_email__" '
'data-cfemail="5a35343633343f283f3c1a343f2d393b343b3b34363338283b28237435283d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:01 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:01 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:01 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:01 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180919>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180919',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/09" '
'href="/events/week/2027/03/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/09" '
'href="/events/day/2027/03/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, March 9, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180919/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180919/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180919/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#254a4b494c4b40574043654b405246444b44444b494c475744575c0b4a5742">\n'
'<span class="__cf_email__" '
'data-cfemail="dfb0b1b3b6b1baadbab99fb1baa8bcbeb1bebeb1b3b6bdadbeada6f1b0adb8">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:01 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180923>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180923',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/04" '
'href="/events/month/2027/04">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/04/06" '
'href="/events/week/2027/04/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/04/06" '
'href="/events/day/2027/04/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Apr\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, April 6, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180923/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180923/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180923/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c7a8a9abaea9a2b5a2a187a9a2b0a4a6a9a6a6a9abaea5b5a6b5bee9a8b5a0">\n'
'<span class="__cf_email__" '
'data-cfemail="127d7c7e7b7c77607774527c776571737c73737c7e7b706073606b3c7d6075">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180920>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180920',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/16" '
'href="/events/week/2027/03/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/16" '
'href="/events/day/2027/03/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, March 16, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180920/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180920/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180920/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#ee81808287808b9c8b88ae808b998d8f808f8f8082878c9c8f9c97c0819c89">\n'
'<span class="__cf_email__" '
'data-cfemail="5e31303237303b2c3b381e303b293d3f303f3f3032373c2c3f2c2770312c39">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-presidents-day-221631>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-presidents-day-221631',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Library Closed: Presidents' Day</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/02" '
'href="/events/month/2027/02">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/02/15" '
'href="/events/week/2027/02/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/02/15" '
'href="/events/day/2027/02/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Feb\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Monday, February 15, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180915>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180915',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/02" '
'href="/events/month/2027/02">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/02/09" '
'href="/events/week/2027/02/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/02/09" '
'href="/events/day/2027/02/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Feb\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, February 9, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180915/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180915/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180915/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9bf4f5f7f2f5fee9fefddbf5feecf8faf5fafaf5f7f2f9e9fae9e2b5f4e9fc">\n'
'<span class="__cf_email__" '
'data-cfemail="3659585a5f5853445350765853415557585757585a5f544457444f18594451">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180918>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180918',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/03" '
'href="/events/month/2027/03">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/03/02" '
'href="/events/week/2027/03/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/03/02" '
'href="/events/day/2027/03/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Mar\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, March 2, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180918/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180918/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180918/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#412e2f2d282f24332427012f243622202f20202f2d2823332033386f2e3326">\n'
'<span class="__cf_email__" '
'data-cfemail="9ef1f0f2f7f0fbecfbf8def0fbe9fdfff0fffff0f2f7fcecffece7b0f1ecf9">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180914>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180914',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/02" '
'href="/events/month/2027/02">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/02/02" '
'href="/events/week/2027/02/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/02/02" '
'href="/events/day/2027/02/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Feb\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, February 2, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180914/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180914/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180914/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#dcb3b2b0b5b2b9aeb9ba9cb2b9abbfbdb2bdbdb2b0b5beaebdaea5f2b3aebb">\n'
'<span class="__cf_email__" '
'data-cfemail="e08f8e8c898e85928586a08e859783818e81818e8c898292819299ce8f9287">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:02 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:02 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:02 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180916>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180916',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/02" '
'href="/events/month/2027/02">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/02/16" '
'href="/events/week/2027/02/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/02/16" '
'href="/events/day/2027/02/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Feb\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, February 16, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180916/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180916/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180916/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#dab5b4b6b3b4bfa8bfbc9ab4bfadb9bbb4bbbbb4b6b3b8a8bba8a3f4b5a8bd">\n'
'<span class="__cf_email__" '
'data-cfemail="1778797b7e7972657271577972607476797676797b7e756576656e39786570">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:02 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180917> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180911> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-martin-luther-king-jr-day-221630> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/events/list?page=13> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180912> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180913> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180946> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180910> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:03 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:03 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180917>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180917',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/02" '
'href="/events/month/2027/02">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/02/23" '
'href="/events/week/2027/02/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/02/23" '
'href="/events/day/2027/02/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Feb\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, February 23, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180917/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180917/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180917/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e689888a8f8883948380a68883918587888787888a8f849487949fc8899481">\n'
'<span class="__cf_email__" '
'data-cfemail="e986878580878c9b8c8fa9878c9e8a888788888785808b9b889b90c7869b8e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:03 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:03 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180911>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180911',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/12" '
'href="/events/week/2027/01/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/12" '
'href="/events/day/2027/01/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, January 12, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180911/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180911/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180911/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cfa0a1a3a6a1aabdaaa98fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">\n'
'<span class="__cf_email__" '
'data-cfemail="a8c7c6c4c1c6cddacdcee8c6cddfcbc9c6c9c9c6c4c1cadac9dad186c7dacf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:03 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:03 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-martin-luther-king-jr-day-221630>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-martin-luther-king-jr-day-221630',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Martin Luther King, Jr. Day</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/18" '
'href="/events/week/2027/01/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/18" '
'href="/events/day/2027/01/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Mon\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Monday, January 18, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:03 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:03 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180912>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180912',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/19" '
'href="/events/week/2027/01/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/19" '
'href="/events/day/2027/01/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, January 19, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180912/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180912/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180912/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#9af5f4f6f3f4ffe8fffcdaf4ffedf9fbf4fbfbf4f6f3f8e8fbe8e3b4f5e8fd">\n'
'<span class="__cf_email__" '
'data-cfemail="c8a7a6a4a1a6adbaadae88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:03 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:04 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180913>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180913',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/26" '
'href="/events/week/2027/01/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/26" '
'href="/events/day/2027/01/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 26\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, January 26, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180913/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180913/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180913/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6708090b0e0902150201270902100406090606090b0e051506151e49081500">\n'
'<span class="__cf_email__" '
'data-cfemail="4827262421262d3a2d2e08262d3f2b292629292624212a3a293a3166273a2f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:04 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180946>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180946',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/09" '
'href="/events/month/2027/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/09/14" '
'href="/events/week/2027/09/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/09/14" '
'href="/events/day/2027/09/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 14, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180946/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180946/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180946/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#8fe0e1e3e6e1eafdeae9cfe1eaf8eceee1eeeee1e3e6edfdeefdf6a1e0fde8">\n'
'<span class="__cf_email__" '
'data-cfemail="e08f8e8c898e85928586a08e859783818e81818e8c898292819299ce8f9287">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:04 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180910>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180910',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/05" '
'href="/events/week/2027/01/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/05" '
'href="/events/day/2027/01/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, January 5, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180910/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180910/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180910/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#92fdfcfefbfcf7e0f7f4d2fcf7e5f1f3fcf3f3fcfefbf0e0f3e0ebbcfde0f5">\n'
'<span class="__cf_email__" '
'data-cfemail="98f7f6f4f1f6fdeafdfed8f6fdeffbf9f6f9f9f6f4f1faeaf9eae1b6f7eaff">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180943> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180942> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180940> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180945> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180944> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180939> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180941> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180938> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:04 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180943>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180943',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/08" '
'href="/events/month/2027/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/08/24" '
'href="/events/week/2027/08/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/08/24" '
'href="/events/day/2027/08/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 24\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 24, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180943/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180943/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180943/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6f00010306010a1d0a092f010a180c0e010e0e0103060d1d0e1d1641001d08">\n'
'<span class="__cf_email__" '
'data-cfemail="ff90919396919a8d9a99bf919a889c9e919e9e9193969d8d9e8d86d1908d98">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:04 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180942>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180942',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/08" '
'href="/events/month/2027/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/08/17" '
'href="/events/week/2027/08/17">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/08/17" '
'href="/events/day/2027/08/17">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 17\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 17, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180942/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180942/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180942/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e58a8b898c8b80978083a58b809286848b84848b898c879784979ccb8a9782">\n'
'<span class="__cf_email__" '
'data-cfemail="d9b6b7b5b0b7bcabbcbf99b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:04 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180940>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180940',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/08" '
'href="/events/month/2027/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/08/03" '
'href="/events/week/2027/08/03">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/08/03" '
'href="/events/day/2027/08/03">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 3\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 3, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180940/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180940/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180940/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#533c3d3f3a3d36213635133d362430323d32323d3f3a312132212a7d3c2134">\n'
'<span class="__cf_email__" '
'data-cfemail="3f50515356515a4d5a597f515a485c5e515e5e5153565d4d5e4d4611504d58">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180945>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180945',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/09" '
'href="/events/month/2027/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/09/07" '
'href="/events/week/2027/09/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/09/07" '
'href="/events/day/2027/09/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 7, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180945/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180945/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180945/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#91fefffdf8fff4e3f4f7d1fff4e6f2f0fff0f0fffdf8f3e3f0e3e8bffee3f6">\n'
'<span class="__cf_email__" '
'data-cfemail="fb94959792959e899e9dbb959e8c989a959a9a95979299899a8982d594899c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180944>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180944',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/08" '
'href="/events/month/2027/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/08/31" '
'href="/events/week/2027/08/31">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/08/31" '
'href="/events/day/2027/08/31">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 31\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 31, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180944/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180944/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180944/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d3bcbdbfbabdb6a1b6b593bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">\n'
'<span class="__cf_email__" '
'data-cfemail="4926272520272c3b2c2f09272c3e2a282728282725202b3b283b3067263b2e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180939>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180939',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/07" '
'href="/events/month/2027/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/07/27" '
'href="/events/week/2027/07/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/07/27" '
'href="/events/day/2027/07/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 27, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180939/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180939/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180939/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1679787a7f7873647370567873617577787777787a7f746477646f38796471">\n'
'<span class="__cf_email__" '
'data-cfemail="84ebeae8edeae1f6e1e2c4eae1f3e7e5eae5e5eae8ede6f6e5f6fdaaebf6e3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180941>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180941',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/08" '
'href="/events/month/2027/08">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/08/10" '
'href="/events/week/2027/08/10">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/08/10" '
'href="/events/day/2027/08/10">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Aug\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 10\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, August 10, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180941/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180941/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180941/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d4bbbab8bdbab1a6b1b294bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">\n'
'<span class="__cf_email__" '
'data-cfemail="422d2c2e2b2c27302724022c273521232c23232c2e2b203023303b6c2d3025">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180938>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180938',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/07" '
'href="/events/month/2027/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/07/20" '
'href="/events/week/2027/07/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/07/20" '
'href="/events/day/2027/07/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 20, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180938/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180938/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180938/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#cfa0a1a3a6a1aabdaaa98fa1aab8acaea1aeaea1a3a6adbdaebdb6e1a0bda8">\n'
'<span class="__cf_email__" '
'data-cfemail="90fffefcf9fef5e2f5f6d0fef5e7f3f1fef1f1fefcf9f2e2f1e2e9beffe2f7">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180932> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180935> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180936> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180934> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180933> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180937> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180931> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-juneteenth-221638> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:05 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180932>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180932',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/08" '
'href="/events/week/2027/06/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/08" '
'href="/events/day/2027/06/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 8, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180932/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180932/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180932/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#e887868481868d9a8d8ea8868d9f8b898689898684818a9a899a91c6879a8f">\n'
'<span class="__cf_email__" '
'data-cfemail="4f20212326212a3d2a290f212a382c2e212e2e2123262d3d2e3d3661203d28">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:05 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180935>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180935',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/29" '
'href="/events/week/2027/06/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/29" '
'href="/events/day/2027/06/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 29, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180935/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180935/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180935/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#bfd0d1d3d6d1dacddad9ffd1dac8dcded1deded1d3d6ddcddecdc691d0cdd8">\n'
'<span class="__cf_email__" '
'data-cfemail="7f10111316111a0d1a193f111a081c1e111e1e1113161d0d1e0d0651100d18">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180936>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180936',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/07" '
'href="/events/month/2027/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/07/06" '
'href="/events/week/2027/07/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/07/06" '
'href="/events/day/2027/07/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 6, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180936/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180936/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180936/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0966676560676c7b6c6f49676c7e6a686768686765606b7b687b7027667b6e">\n'
'<span class="__cf_email__" '
'data-cfemail="d9b6b7b5b0b7bcabbcbf99b7bcaebab8b7b8b8b7b5b0bbabb8aba0f7b6abbe">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180934>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180934',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/22" '
'href="/events/week/2027/06/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/22" '
'href="/events/day/2027/06/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 22, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180934/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180934/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180934/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#8de2e3e1e4e3e8ffe8ebcde3e8faeeece3ecece3e1e4efffecfff4a3e2ffea">\n'
'<span class="__cf_email__" '
'data-cfemail="d4bbbab8bdbab1a6b1b294bab1a3b7b5bab5b5bab8bdb6a6b5a6adfabba6b3">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180933>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180933',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/15" '
'href="/events/week/2027/06/15">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/15" '
'href="/events/day/2027/06/15">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 15\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 15, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180933/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180933/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180933/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6906070500070c1b0c0f29070c1e0a080708080705000b1b081b1047061b0e">\n'
'<span class="__cf_email__" '
'data-cfemail="1d7273717473786f787b5d73786a7e7c737c7c7371747f6f7c6f6433726f7a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180937>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180937',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/07" '
'href="/events/month/2027/07">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/07/13" '
'href="/events/week/2027/07/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/07/13" '
'href="/events/day/2027/07/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jul\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, July 13, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180937/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180937/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180937/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5c3332303532392e393a1c32392b3f3d323d3d3230353e2e3d2e2572332e3b">\n'
'<span class="__cf_email__" '
'data-cfemail="107f7e7c797e75627576507e756773717e71717e7c7972627162693e7f6277">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180931>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180931',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/01" '
'href="/events/week/2027/06/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/01" '
'href="/events/day/2027/06/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, June 1, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180931/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180931/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180931/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4e21202227202b3c2b280e202b392d2f202f2f2022272c3c2f3c3760213c29">\n'
'<span class="__cf_email__" '
'data-cfemail="f29d9c9e9b9c97809794b29c978591939c93939c9e9b908093808bdc9d8095">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-juneteenth-221638>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-juneteenth-221638',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Juneteenth</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/06" '
'href="/events/month/2027/06">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/06/19" '
'href="/events/week/2027/06/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/06/19" '
'href="/events/day/2027/06/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jun\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Sat\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Saturday, June 19, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180961> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180960> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180955> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180956> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180959> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180957> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:06 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:06 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180961>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180961',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/12" '
'href="/events/month/2027/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/12/28" '
'href="/events/week/2027/12/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/12/28" '
'href="/events/day/2027/12/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 28, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180961/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180961/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180961/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#d5babbb9bcbbb0a7b0b395bbb0a2b6b4bbb4b4bbb9bcb7a7b4a7acfbbaa7b2">\n'
'<span class="__cf_email__" '
'data-cfemail="7c1312101512190e191a3c12190b1f1d121d1d1210151e0e1d0e0552130e1b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180960>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180960',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/12" '
'href="/events/month/2027/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/12/21" '
'href="/events/week/2027/12/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/12/21" '
'href="/events/day/2027/12/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 21, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180960/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180960/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180960/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#caa5a4a6a3a4afb8afac8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad">\n'
'<span class="__cf_email__" '
'data-cfemail="d2bdbcbebbbcb7a0b7b492bcb7a5b1b3bcb3b3bcbebbb0a0b3a0abfcbda0b5">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180955>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180955',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/11" '
'href="/events/month/2027/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/11/16" '
'href="/events/week/2027/11/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/11/16" '
'href="/events/day/2027/11/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 16, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180955/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180955/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180955/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#deb1b0b2b7b0bbacbbb89eb0bba9bdbfb0bfbfb0b2b7bcacbfaca7f0b1acb9">\n'
'<span class="__cf_email__" '
'data-cfemail="432c2d2f2a2d26312625032d263420222d22222d2f2a213122313a6d2c3124">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180956>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180956',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/11" '
'href="/events/month/2027/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/11/23" '
'href="/events/week/2027/11/23">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/11/23" '
'href="/events/day/2027/11/23">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 23\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 23, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180956/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180956/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180956/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#254a4b494c4b40574043654b405246444b44444b494c475744575c0b4a5742">\n'
'<span class="__cf_email__" '
'data-cfemail="3d5253515453584f585b7d53584a5e5c535c5c5351545f4f5c4f4413524f5a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180959>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180959',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/12" '
'href="/events/month/2027/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/12/14" '
'href="/events/week/2027/12/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/12/14" '
'href="/events/day/2027/12/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 14, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180959/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180959/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180959/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#4f20212326212a3d2a290f212a382c2e212e2e2123262d3d2e3d3661203d28">\n'
'<span class="__cf_email__" '
'data-cfemail="87e8e9ebeee9e2f5e2e1c7e9e2f0e4e6e9e6e6e9ebeee5f5e6f5fea9e8f5e0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180957>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180957',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/11" '
'href="/events/month/2027/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/11/30" '
'href="/events/week/2027/11/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/11/30" '
'href="/events/day/2027/11/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 30\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 30, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180957/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180957/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180957/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f996979590979c8b9c9fb9979c8e9a989798989795909b8b988b80d7968b9e">\n'
'<span class="__cf_email__" '
'data-cfemail="533c3d3f3a3d36213635133d362430323d32323d3f3a312132212a7d3c2134">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180958> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-memorial-day-221637> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180947> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180954> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180950> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180949> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180953> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:07 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:07 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180958>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180958',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/12" '
'href="/events/month/2027/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/12/07" '
'href="/events/week/2027/12/07">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/12/07" '
'href="/events/day/2027/12/07">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 7\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 7, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180958/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180958/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180958/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#452a2b292c2b20372023052b203226242b24242b292c273724373c6b2a3722">\n'
'<span class="__cf_email__" '
'data-cfemail="82edeceeebece7f0e7e4c2ece7f5e1e3ece3e3eceeebe0f0e3f0fbacedf0e5">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:07 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-memorial-day-221637>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-memorial-day-221637',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Memorial Day</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/05" '
'href="/events/month/2027/05">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/05/30" '
'href="/events/week/2027/05/30">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/05/30" '
'href="/events/day/2027/05/30">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' May\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day '
'lc-date-icon__item--multi-day">\n'
' 30 <div>-</div> 31\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Sunday, May 30, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' 5/30–5/31\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180947>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180947',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/09" '
'href="/events/month/2027/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/09/21" '
'href="/events/week/2027/09/21">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/09/21" '
'href="/events/day/2027/09/21">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 21\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 21, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180947/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180947/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180947/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#caa5a4a6a3a4afb8afac8aa4afbda9aba4ababa4a6a3a8b8abb8b3e4a5b8ad">\n'
'<span class="__cf_email__" '
'data-cfemail="b1dedfddd8dfd4c3d4d7f1dfd4c6d2d0dfd0d0dfddd8d3c3d0c3c89fdec3d6">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180954>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180954',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/11" '
'href="/events/month/2027/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/11/09" '
'href="/events/week/2027/11/09">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/11/09" '
'href="/events/day/2027/11/09">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 9\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 9, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180954/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180954/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180954/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a4cbcac8cdcac1d6c1c2e4cac1d3c7c5cac5c5cac8cdc6d6c5d6dd8acbd6c3">\n'
'<span class="__cf_email__" '
'data-cfemail="f699989a9f9893849390b69893819597989797989a9f948497848fd8998491">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180950>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180950',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/10" '
'href="/events/month/2027/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/10/12" '
'href="/events/week/2027/10/12">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/10/12" '
'href="/events/day/2027/10/12">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 12\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 12, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180950/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180950/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180950/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5738393b3e3932253231173932203436393636393b3e352536252e79382530">\n'
'<span class="__cf_email__" '
'data-cfemail="1d7273717473786f787b5d73786a7e7c737c7c7371747f6f7c6f6433726f7a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180949>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180949',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/10" '
'href="/events/month/2027/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/10/05" '
'href="/events/week/2027/10/05">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/10/05" '
'href="/events/day/2027/10/05">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 5\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 5, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180949/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180949/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180949/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0c6362606562697e696a4c62697b6f6d626d6d6260656e7e6d7e7522637e6b">\n'
'<span class="__cf_email__" '
'data-cfemail="7d1213111413180f181b3d13180a1e1c131c1c1311141f0f1c0f0453120f1a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:08 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:08 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180953>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180953',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/11" '
'href="/events/month/2027/11">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/11/02" '
'href="/events/week/2027/11/02">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/11/02" '
'href="/events/day/2027/11/02">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Nov\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 2\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, November 2, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180953/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180953/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180953/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0d6263616463687f686b4d63687a6e6c636c6c6361646f7f6c7f7423627f6a">\n'
'<span class="__cf_email__" '
'data-cfemail="86e9e8eaefe8e3f4e3e0c6e8e3f1e5e7e8e7e7e8eaefe4f4e7f4ffa8e9f4e1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180948> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180952> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180951> (referer: https://www.newcanaanlibrary.org/events/list?page=13)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180926> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180928> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180927> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180925> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180929> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180948>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180948',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/09" '
'href="/events/month/2027/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/09/28" '
'href="/events/week/2027/09/28">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/09/28" '
'href="/events/day/2027/09/28">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 28\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 28, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180948/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180948/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180948/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#b4dbdad8dddad1c6d1d2f4dad1c3d7d5dad5d5dad8ddd6c6d5c6cd9adbc6d3">\n'
'<span class="__cf_email__" '
'data-cfemail="c6a9a8aaafa8a3b4a3a086a8a3b1a5a7a8a7a7a8aaafa4b4a7b4bfe8a9b4a1">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180952>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180952',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/10" '
'href="/events/month/2027/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/10/26" '
'href="/events/week/2027/10/26">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/10/26" '
'href="/events/day/2027/10/26">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 26\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 26, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180952/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180952/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180952/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#533c3d3f3a3d36213635133d362430323d32323d3f3a312132212a7d3c2134">\n'
'<span class="__cf_email__" '
'data-cfemail="bcd3d2d0d5d2d9ced9dafcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180951>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180951',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/10" '
'href="/events/month/2027/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/10/19" '
'href="/events/week/2027/10/19">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/10/19" '
'href="/events/day/2027/10/19">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 19\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 19, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180951/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180951/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180951/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2a45444643444f584f4c6a444f5d494b444b4b44464348584b58530445584d">\n'
'<span class="__cf_email__" '
'data-cfemail="e887868481868d9a8d8ea8868d9f8b898689898684818a9a899a91c6879a8f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180926>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180926',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/04" '
'href="/events/month/2027/04">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/04/27" '
'href="/events/week/2027/04/27">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/04/27" '
'href="/events/day/2027/04/27">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Apr\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 27\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, April 27, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180926/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180926/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180926/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6f00010306010a1d0a092f010a180c0e010e0e0103060d1d0e1d1641001d08">\n'
'<span class="__cf_email__" '
'data-cfemail="0867666461666d7a6d6e48666d7f6b696669696664616a7a697a7126677a6f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180928>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180928',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/05" '
'href="/events/month/2027/05">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/05/11" '
'href="/events/week/2027/05/11">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/05/11" '
'href="/events/day/2027/05/11">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' May\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 11\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, May 11, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180928/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180928/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180928/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#345b5a585d5a51465152745a514357555a55555a585d564655464d1a5b4653">\n'
'<span class="__cf_email__" '
'data-cfemail="107f7e7c797e75627576507e756773717e71717e7c7972627162693e7f6277">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180927>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180927',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/05" '
'href="/events/month/2027/05">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/05/04" '
'href="/events/week/2027/05/04">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/05/04" '
'href="/events/day/2027/05/04">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' May\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 4\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, May 4, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180927/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180927/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180927/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#83ecedefeaede6f1e6e5c3ede6f4e0e2ede2e2edefeae1f1e2f1faadecf1e4">\n'
'<span class="__cf_email__" '
'data-cfemail="2a45444643444f584f4c6a444f5d494b444b4b44464348584b58530445584d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180925>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180925',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/04" '
'href="/events/month/2027/04">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/04/20" '
'href="/events/week/2027/04/20">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/04/20" '
'href="/events/day/2027/04/20">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Apr\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 20\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, April 20, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180925/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180925/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180925/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0768696b6e6962756261476962706466696666696b6e657566757e29687560">\n'
'<span class="__cf_email__" '
'data-cfemail="95fafbf9fcfbf0e7f0f3d5fbf0e2f6f4fbf4f4fbf9fcf7e7f4e7ecbbfae7f2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:09 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:09 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:09 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180929>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180929',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/05" '
'href="/events/month/2027/05">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/05/18" '
'href="/events/week/2027/05/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/05/18" '
'href="/events/day/2027/05/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' May\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, May 18, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180929/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180929/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180929/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#a5cacbc9cccbc0d7c0c3e5cbc0d2c6c4cbc4c4cbc9ccc7d7c4d7dc8bcad7c2">\n'
'<span class="__cf_email__" '
'data-cfemail="ec8382808582899e898aac82899b8f8d828d8d8280858e9e8d9e95c2839e8b">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-happy-new-year-221629> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closes-3pm-new-years-eve-221628> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180930> (referer: https://www.newcanaanlibrary.org/events/list?page=12)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180907> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/library-closed-christmas-221606> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188900> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188898> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180908> (referer: https://www.newcanaanlibrary.org/events/list?page=11)
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-happy-new-year-221629>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-happy-new-year-221629',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Happy New Year!</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/01" '
'href="/events/month/2027/01">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/01/01" '
'href="/events/week/2027/01/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/01/01" '
'href="/events/day/2027/01/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Jan\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Friday, January 1, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closes-3pm-new-years-eve-221628>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closes-3pm-new-years-eve-221628',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Library Closes at 3PM: New Year's Eve</span>\n"
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/31" '
'href="/events/week/2026/12/31">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/31" '
'href="/events/day/2026/12/31">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 31\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Thursday, December 31, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 3:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180930>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180930',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2027/05" '
'href="/events/month/2027/05">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2027/05/25" '
'href="/events/week/2027/05/25">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2027/05/25" '
'href="/events/day/2027/05/25">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' May\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2027\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, May 25, 2027\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180910">\n'
' 01/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180911">\n'
' 01/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180912">\n'
' 01/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180913">\n'
' 01/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180914">\n'
' 02/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180915">\n'
' 02/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180916">\n'
' 02/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180917">\n'
' 02/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180918">\n'
' 03/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180919">\n'
' 03/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180920">\n'
' 03/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180921">\n'
' 03/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180922">\n'
' 03/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180923">\n'
' 04/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180924">\n'
' 04/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180925">\n'
' 04/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180926">\n'
' 04/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180927">\n'
' 05/04/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180928">\n'
' 05/11/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180929">\n'
' 05/18/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180930">\n'
' 05/25/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180931">\n'
' 06/01/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180932">\n'
' 06/08/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180933">\n'
' 06/15/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180934">\n'
' 06/22/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180935">\n'
' 06/29/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180936">\n'
' 07/06/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180937">\n'
' 07/13/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180938">\n'
' 07/20/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180939">\n'
' 07/27/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180940">\n'
' 08/03/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180941">\n'
' 08/10/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180942">\n'
' 08/17/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180943">\n'
' 08/24/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180944">\n'
' 08/31/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180945">\n'
' 09/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180946">\n'
' 09/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180947">\n'
' 09/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180948">\n'
' 09/28/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180949">\n'
' 10/05/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180950">\n'
' 10/12/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180951">\n'
' 10/19/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180952">\n'
' 10/26/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180953">\n'
' 11/02/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180954">\n'
' 11/09/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180955">\n'
' 11/16/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180956">\n'
' 11/23/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180957">\n'
' 11/30/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180958">\n'
' 12/07/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180959">\n'
' 12/14/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180960">\n'
' 12/21/27\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180961">\n'
' 12/28/27\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180930/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180930/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180930/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c8a7a6a4a1a6adbaadae88a6adbfaba9a6a9a9a6a4a1aabaa9bab1e6a7baaf">\n'
'<span class="__cf_email__" '
'data-cfemail="036c6d6f6a6d66716665436d667460626d62626d6f6a617162717a2d6c7164">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180907>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180907',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/22" '
'href="/events/week/2026/12/22">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/22" '
'href="/events/day/2026/12/22">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 22\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 22, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180907/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180907/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180907/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#6b04050702050e190e0d2b050e1c080a050a0a05070209190a19124504190c">\n'
'<span class="__cf_email__" '
'data-cfemail="b5dadbd9dcdbd0c7d0d3f5dbd0c2d6d4dbd4d4dbd9dcd7c7d4c7cc9bdac7d2">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/library-closed-christmas-221606>
{'event_url': 'https://www.newcanaanlibrary.org/event/library-closed-christmas-221606',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Library Closed: Christmas</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node '
'node--type-lc-closing node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/24" '
'href="/events/week/2026/12/24">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/24" '
'href="/events/day/2026/12/24">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event-sidebar--first">\n'
'<div class="lc-event-details">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day '
'lc-date-icon__item--multi-day">\n'
' 24 <div>-</div> 25\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-info-item '
'lc-event-info-item--room lc-closing-color">\n'
' New Canaan Library\n'
' </h3>\n'
'<div class="lc-event-info__item lc-event-info__item--date '
'visually-hidden">\n'
' Thursday, December 24, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' All Day\n'
' 12/24–12/25\n'
' </div>\n'
'<div class="lc-event__key lc-event__key--closing">\n'
'<strong>Closing</strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content">\n'
'<h2 class="lc-event-subtitle lc-closing-color">Description</h2>\n'
'</section>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188900>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188900',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Suicide Prevention Training: Question, Persuade and '
'Refer</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/18" '
'href="/events/week/2026/12/18">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/18" '
'href="/events/day/2026/12/18">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 18\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, December 18, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188889">\n'
' 01/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188890">\n'
' 02/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188891">\n'
' 03/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188892">\n'
' 04/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188893">\n'
' 05/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188897">\n'
' 09/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188898">\n'
' 10/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188899">\n'
' 11/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188900">\n'
' 12/18/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3860/lc_featured_image?alternative_text=Town%20of%20New%20Canaan%20Logo"><img '
'alt="Town of New Canaan Logo" class="img-fluid" height="143" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2025-01/town%20logo%20green_0.png" '
'width="141"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188900/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188900/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'December 18, 2026 @ 11:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>In partnership with the '
'Health Department of New Canaan, we present a suicide prevention '
'QPR class.\xa0</strong></p><p>QPR stands for Question, Persuade, '
'and Refer — the 3 simple steps anyone can use to help prevent '
'suicide.</p><p>Just as people trained in CPR and the Heimlich '
'Maneuver help save thousands of lives, those trained in QPR '
'learn how to recognize the warning signs of a suicide crisis and '
'how to question, persuade, and refer someone to help. Each year '
'thousands of Americans, like you, are saying "Yes" to saving the '
'life of a friend, colleague, sibling, or neighbor.</p><p>This '
'training will certify you as a QPR gatekeeper.</p><p>What is a '
'gatekeeper?</p><p>According to the Surgeon General’s National '
'Strategy for Suicide Prevention (2001), a gatekeeper is someone '
'in a position to recognize a crisis and the warning signs that '
'someone may be contemplating suicide.</p><p>Gatekeepers can be '
'anyone, but include parents, friends, neighbors, teachers, '
'ministers, doctors, nurses, office supervisors, squad leaders, '
'foremen, police officers, advisors, caseworkers, firefighters, '
'and many others who are strategically positioned to recognize '
'and refer someone at risk of suicide.</p><p><strong>As a '
'QPR-trained Gatekeeper you will learn to:</strong></p><ul '
'type="disc"><li><strong>Recognize the warning signs of '
'suicide</strong></li><li><strong>Know how to offer '
'hope</strong></li><li><strong>Know how to get help and save a '
'life</strong></li></ul></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#85eaebe9ecebe0f7e0e3c5ebe0f2e6e4ebe4e4ebe9ece7f7e4f7fcabeaf7e2"><span '
'class="__cf_email__" '
'data-cfemail="543b3a383d3a31263132143a312337353a35353a383d362635262d7a3b2633">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-suicide-prevention-training-question-persuade-and-refer-188900" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-0el5m01cxk6kis2tmfule7klahnhexxfocgj4ue8gns" '
'name="form_build_id" type="hidden" '
'value="form-0eL5M01CXk6KIs2tMfule7KLahNhexxfocGJ4ue8gNs"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#2a4c5a4346464345444d4b584e444f586a444f5d494b444b4b44464348584b58530445584d">\n'
'<span class="__cf_email__" '
'data-cfemail="d3b5a3babfbfbabcbdb4b2a1b7bdb6a193bdb6a4b0b2bdb2b2bdbfbab1a1b2a1aafdbca1b4">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188898>
{'event_url': 'https://www.newcanaanlibrary.org/event/copy-suicide-prevention-training-question-persuade-and-refer-188898',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Suicide Prevention Training: Question, Persuade and '
'Refer</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/16" '
'href="/events/week/2026/10/16">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/16" '
'href="/events/day/2026/10/16">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 16\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Fri\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Friday, October 16, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 11:00am–1:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188889">\n'
' 01/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188890">\n'
' 02/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188891">\n'
' 03/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188892">\n'
' 04/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188893">\n'
' 05/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188897">\n'
' 09/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188898">\n'
' 10/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188899">\n'
' 11/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/copy-suicide-prevention-training-question-persuade-and-refer-188900">\n'
' 12/18/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/3860/lc_featured_image?alternative_text=Town%20of%20New%20Canaan%20Logo"><img '
'alt="Town of New Canaan Logo" class="img-fluid" height="143" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2025-01/town%20logo%20green_0.png" '
'width="141"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188898/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/188898/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B26%5D=26">Health & '
'Wellness</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B96%5D=96">Special '
'Programs</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'October 16, 2026 @ 11:00am.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><strong>In partnership with the '
'Health Department of New Canaan, we present a suicide prevention '
'QPR class.\xa0</strong></p><p>QPR stands for Question, Persuade, '
'and Refer — the 3 simple steps anyone can use to help prevent '
'suicide.</p><p>Just as people trained in CPR and the Heimlich '
'Maneuver help save thousands of lives, those trained in QPR '
'learn how to recognize the warning signs of a suicide crisis and '
'how to question, persuade, and refer someone to help. Each year '
'thousands of Americans, like you, are saying "Yes" to saving the '
'life of a friend, colleague, sibling, or neighbor.</p><p>This '
'training will certify you as a QPR gatekeeper.</p><p>What is a '
'gatekeeper?</p><p>According to the Surgeon General’s National '
'Strategy for Suicide Prevention (2001), a gatekeeper is someone '
'in a position to recognize a crisis and the warning signs that '
'someone may be contemplating suicide.</p><p>Gatekeepers can be '
'anyone, but include parents, friends, neighbors, teachers, '
'ministers, doctors, nurses, office supervisors, squad leaders, '
'foremen, police officers, advisors, caseworkers, firefighters, '
'and many others who are strategically positioned to recognize '
'and refer someone at risk of suicide.</p><p><strong>As a '
'QPR-trained Gatekeeper you will learn to:</strong></p><ul '
'type="disc"><li><strong>Recognize the warning signs of '
'suicide</strong></li><li><strong>Know how to offer '
'hope</strong></li><li><strong>Know how to get help and save a '
'life</strong></li></ul></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#92fdfcfefbfcf7e0f7f4d2fcf7e5f1f3fcf3f3fcfefbf0e0f3e0ebbcfde0f5"><span '
'class="__cf_email__" '
'data-cfemail="650a0b090c0b00170003250b001206040b04040b090c071704171c4b0a1702">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/copy-suicide-prevention-training-question-persuade-and-refer-188898" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-kk8obb-uhzcojgrfacjgxtupzdmf2kdhoa5osltorgg" '
'name="form_build_id" type="hidden" '
'value="form-Kk8oBb-uhZcOJGRfacjGXTupZdMF2kDhoa5oSltorgg"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Flannery Pillion-Gardner\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#c6a0b6afaaaaafa9a8a1a7b4a2a8a3b486a8a3b1a5a7a8a7a7a8aaafa4b4a7b4bfe8a9b4a1">\n'
'<span class="__cf_email__" '
'data-cfemail="791f091015151016171e180b1d171c0b39171c0e1a181718181715101b0b180b0057160b1e">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:10 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:10 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:10 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180908>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180908',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/12" '
'href="/events/month/2026/12">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/12/29" '
'href="/events/week/2026/12/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/12/29" '
'href="/events/day/2026/12/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Dec\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, December 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180908/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180908/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180908/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#5f30313336313a2d3a391f313a283c3e313e3e3133363d2d3e2d2671302d38">\n'
'<span class="__cf_email__" '
'data-cfemail="c9a6a7a5a0a7acbbacaf89a7acbeaaa8a7a8a8a7a5a0abbba8bbb0e7a6bbae">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180896> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180897> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/open-tech-180895> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-5> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-6> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221993> (referer: https://www.newcanaanlibrary.org/events/list?page=10)
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180896>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180896',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/06" '
'href="/events/week/2026/10/06">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/06" '
'href="/events/day/2026/10/06">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 6\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 6, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180896/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180896/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180896/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#89e6e7e5e0e7ecfbecefc9e7ecfeeae8e7e8e8e7e5e0ebfbe8fbf0a7e6fbee">\n'
'<span class="__cf_email__" '
'data-cfemail="2847464441464d5a4d4e68464d5f4b494649494644414a5a495a5106475a4f">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180897>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180897',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/13" '
'href="/events/week/2026/10/13">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/13" '
'href="/events/day/2026/10/13">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 13\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, October 13, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180897/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180897/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180897/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#0669686a6f6863746360466863716567686767686a6f647467747f28697461">\n'
'<span class="__cf_email__" '
'data-cfemail="e788898b8e8982958281a78982908486898686898b8e859586959ec9889580">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/open-tech-180895>
{'event_url': 'https://www.newcanaanlibrary.org/event/open-tech-180895',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Open Tech</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/29" '
'href="/events/week/2026/09/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/29" '
'href="/events/day/2026/09/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 2:00pm–4:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180857">\n'
' 01/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180858">\n'
' 01/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180859">\n'
' 01/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180860">\n'
' 01/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180861">\n'
' 02/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180862">\n'
' 02/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180863">\n'
' 02/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180864">\n'
' 02/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180866">\n'
' 03/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180867">\n'
' 03/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180868">\n'
' 03/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180869">\n'
' 03/31/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180870">\n'
' 04/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180871">\n'
' 04/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180872">\n'
' 04/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180873">\n'
' 04/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180874">\n'
' 05/05/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180875">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180876">\n'
' 05/19/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180877">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180878">\n'
' 06/02/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180879">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180880">\n'
' 06/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180882">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180883">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180884">\n'
' 07/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180885">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180886">\n'
' 07/28/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180887">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180888">\n'
' 08/11/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180889">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180890">\n'
' 08/25/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180891">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180892">\n'
' 09/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180893">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180894">\n'
' 09/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/open-tech-180895">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180896">\n'
' 10/06/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180897">\n'
' 10/13/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180898">\n'
' 10/20/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180899">\n'
' 10/27/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180900">\n'
' 11/03/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180901">\n'
' 11/10/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180902">\n'
' 11/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180903">\n'
' 11/24/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180904">\n'
' 12/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180905">\n'
' 12/08/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180906">\n'
' 12/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180907">\n'
' 12/22/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/open-tech-180908">\n'
' 12/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180895/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180895/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/180895/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B30%5D=30">Technology & '
'STEM</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Open Tech is a weekly drop-in '
'program held every Tuesday from 2:00-4:00 PM. If you need help '
'with email, smartphones/tablets, social media, or accessing our '
'digital library, stop by for one-on-one support from a tech '
'librarian.\xa0<strong>All technology-related questions are '
'welcome, though we may not always have the solution within our '
"program's scope or expertise.</strong>\xa0Attending the program "
'indicates agreement to our\xa0<a '
'href="https://live-newcanaan.pantheonsite.io/policies/open-tech-policy"><strong>Open '
'Tech Policy</strong></a>.</p><p>Tech assistance is limited to 20 '
'minutes per session and is provided on a first-come, '
'first-served basis.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f699989a9f9893849390b69893819597989797989a9f948497848fd8998491">\n'
'<span class="__cf_email__" '
'data-cfemail="4d2223212423283f282b0d23283a2e2c232c2c2321242f3f2c3f3463223f2a">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945003">\n'
' (203) 594-5003\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-5>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-5',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 5: The Soul of All '
'America (December 1777 – May 1780)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/01" '
'href="/events/week/2026/10/01">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/01" '
'href="/events/day/2026/10/01">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 1\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, October 1, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5763/lc_featured_image?alternative_text=Painting%20of%20White%20and%20Black%20American%20patriots%20marching"><img '
'alt="Painting of White and Black American patriots marching" '
'class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%205%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214371/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214371/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'October 1, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><em>The American Revolution, '
'</em>a landmark documentary by Ken Burns, Sarah Botstein, and '
'David Schmidt, examines how our nation’s founding was at once a '
'war for independence, a civil war, and a world war that impacted '
'millions.\xa0We are pleased to present screenings of all six '
'episodes in their entirety for America 250. \xa0\xa0</p><p '
'class="Paragraph SCXW6091327 BCX0"><strong>Episode Five: The '
'Soul of All America (December 1777 – May 1780)</strong>\xa0'
'</p><p class="Paragraph SCXW6091327 BCX0">During the harsh '
'winter of 1777-1778, George Washington’s Continental Army '
'endured brutal conditions at Valley Forge, Pennsylvania, facing '
'severe shortages of food and clothing, high sickness rates, and '
'plummeting morale. Despite threats of mutiny, Washington, aided '
'by General Nathanael Greene and General Friedrich Wilhelm von '
'Steuben, successfully reorganized the troops into a disciplined '
'fighting force.\xa0</p><p class="Paragraph SCXW6091327 BCX0">The '
'British army shifted leadership, replacing General Howe with '
'General Clinton, who was ordered to abandon Philadelphia for New '
'York due to the French entry into the war and a new "Southern '
'Strategy." Following their training, the Continental Army '
'pursued the British, resulting in a drawn battle in New Jersey. '
'Later, an early coordinated French-American assault on Newport, '
'Rhode Island, failed, leading General John Sullivan to blame '
"d'Estaing for the failure.</p></div>\n"
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-ken-burns-american-revolution-screening-episode-5" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-nnbsfeduqe8i4daekygvejisg4i0i1vipwd2f2rhgbu" '
'name="form_build_id" type="hidden" '
'value="form-nNbsFEdUQE8i4daEkYGVEjIsg4i0i1VIpWd2f2RhGbU"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#f598859a878194b59b908296949b94949b999c978794878cdb9a8792">\n'
'<span class="__cf_email__" '
'data-cfemail="1a776a75686e7b5a747f6d797b747b7b74767378687b68633475687d">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-6>
{'event_url': 'https://www.newcanaanlibrary.org/event/hold-ken-burns-american-revolution-screening-episode-6',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>The American Revolution, Episode 6: The Most Sacred Thing '
'(May 1780 – Onward)</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/08" '
'href="/events/week/2026/10/08">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/08" '
'href="/events/day/2026/10/08">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 8\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Thu\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Jim & Dede Bartlett Auditorium + Community '
'Room + Kend Kitchen\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Thursday, October 8, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 6:00pm–8:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/5764/lc_featured_image?alternative_text=George%20Washington%20surrounded%20by%20other%20white%20American%20politicians%20and%20representatives%20in%20a%20formal%20indoor%20setting%20during%20ratification%20of%20the%20Articles%20of%20the%20Confederation"><img '
'alt="George Washington surrounded by other white American '
'politicians and representatives in a formal indoor setting '
'during ratification of the Articles of the Confederation" '
'class="img-fluid" height="270" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2026-05/Episode%206%20Ken%20Burns.png" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214372/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/214372/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B95%5D=95">Authors '
'& Lectures</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'October 8, 2026 @ 6:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p><em>The American Revolution, '
'</em>a landmark documentary by Ken Burns, Sarah Botstein, and '
'David Schmidt, examines how our nation’s founding was at once a '
'war for independence, a civil war, and a world war that impacted '
'millions.\xa0We are pleased to present screenings of all six '
'episodes in their entirety for America 250. \xa0\xa0</p><p '
'class="Paragraph SCXW14000828 BCX0"><strong>Episode Six: The '
'Most Sacred Thing (May 1780 – Onward)</strong>\xa0</p><p '
'class="Paragraph SCXW14000828 BCX0">British soldiers under '
'General\xa0Cornwallis rout the Patriots led by General Horatio '
'Gates at the Battle of Camden in South Carolina. On his arrival '
'at West Point to review the fortifications there, George '
'Washington learns that Arnold has defected to the British and is '
'commanding a group of Loyalists and deserters called “The '
'American Legion.”\xa0</p><p class="Paragraph SCXW14000828 '
'BCX0">Angry about lack of pay and poor living conditions, 1,500 '
'Pennsylvania Continentals mutiny and march towards Congress in '
'Philadelphia. Though promised full back pay, a few weeks later '
'they are executed.\xa0\xa0</p><p class="Paragraph SCXW14000828 '
'BCX0">Continental General Daniel Morgan lays a trap for British '
'forces at the Battle of Cowpens in South Carolina, and '
'later<strong> </strong>General Nathanael Greene\xa0does the '
'same\xa0against General Charles Cornwallis at the Battle of '
'Guilford Courthouse. Soon afterwards, Cornwallis gives up on the '
'Carolinas and moves to Virginia.\xa0</p><p class="Paragraph '
'SCXW14000828 BCX0">On March 1, Congress gets word that Maryland, '
'the last holdout, has finally ratified the Articles of '
'Confederation, making them the official law of the land. The '
'Articles, an alliance between member states, not a central '
'government, remain weak by design. The states remain largely '
'independent from each other with their own sets of laws, '
'including those governing slavery. Often inspired by the spirit '
'of the Revolution, people begin to call for the abolition of '
'slavery, particularly in the northern states.\xa0</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Thank You for Your Support!</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library is pleased to be '
'able to offer free programs and events through the generous '
'donations of patrons like you. Please consider <strong><a '
'href="https://www.newcanaanlibrary.org/annual-fund">making a '
'tax-deductible gift to the Library’s Annual Fund</a></strong> so '
'we can continue to offer programs like this one.</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/hold-ken-burns-american-revolution-screening-episode-6" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-y1jp5fragv9pqztopu3qf505bplr-9loec4m8y-vyx4" '
'name="form_build_id" type="hidden" '
'value="form-y1Jp5FrAgv9PqzTopu3qF505BPlR-9LoEC4M8y-vYX4"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Miki Porta\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#1a776a75686e7b5a747f6d797b747b7b74767378687b68633475687d">\n'
'<span class="__cf_email__" '
'data-cfemail="d7baa7b8a5a3b697b9b2a0b4b6b9b6b6b9bbbeb5a5b6a5aef9b8a5b0">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945083">\n'
' (203) 594-5083\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-06-16 04:21:11 [canaan_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794>
{'event_url': 'https://www.newcanaanlibrary.org/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
"<span>Women and Money Roundtable: How to Make Sense of Today's "
'Financial Markets</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/10" '
'href="/events/month/2026/10">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/10/14" '
'href="/events/week/2026/10/14">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/10/14" '
'href="/events/day/2026/10/14">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Oct\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 14\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Wed\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' Online\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Wednesday, October 14, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 1:00pm–2:00pm\n'
' </div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221790">\n'
' 06/17/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221791">\n'
' 07/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221792">\n'
' 08/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221793">\n'
' 09/16/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221794">\n'
' 10/14/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221795">\n'
' 11/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/women-and-money-roundtable-how-make-sense-todays-financial-markets-221796">\n'
' 12/09/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Setup '
'Reminder","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221794/reminder_form" '
'title="Remind Me">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--reminder"></span>\n'
'<span class="lc-event-actions__text">Remind Me</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221794/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221794/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B31%5D=31">Classes '
'& Workshops</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div></div>\n'
'<h2 class="lc-event-subtitle visually-hidden">Program '
'Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>Join Financial Advisors Julia '
'Strayer and Liz Maccarone for a series of easy-to-follow '
'discussions on how to make sense of today’s financial markets. '
'They will cover the latest market news and how that might affect '
'your financial decisions. Julia and Liz will also provide '
'background and context for understanding why market movement '
'occurs, and strategies for keeping ahead of what might '
'come.</p><p>This series is hosted by Darien '
'Library.</p><p>Register here: <a '
'href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdarienlibrary.zoom.us%2fwebinar%2fregister%2fWN_bg4mgEn9Tk6cTdXuhYz3Mg%23%2fregistration&c=E,1,Az_v9uCaZCxSdyr9Cv9K42SEX_B1hzIYBmWhH0cPSFI_3VpzkMGCBjUZh08mpehmTCGoTi7CS3oDqMz6_QGQqHXM1Cl0Cc7LdlSj5u_12Epo&typo=1" '
'target="_blank"><strong>https://darienlibrary.zoom.us/webinar/register/WN_bg4mgEn9Tk6cTdXuhYz3Mg#/registration</strong></a></p><p '
'class="x_MsoNormal"><strong>Julia Strayer, CPWA®, CIMA®, '
'CRPC®</strong></p><p class="x_MsoNormal">Senior Vice President, '
'Wealth Management Advisor</p><p class="x_MsoNormal">Prior to '
'joining Merrill Lynch Wealth Management\xa0in 2000, Julia was a '
'vice president and private banker for BankBoston’s Private Bank '
'for 7 years, responsible for asset management and trust '
'services. Previously, Julia worked in marketing for 9 years with '
'Merrill. Julia has a BA from Ohio State University and an MBA '
'from New York University’s Stern School of Business. Julia has '
'appeared on the CNBC show “Power Lunch,” CBS “This Morning,” '
'WGCH’s “Women in Business,” in addition to featured articles in '
'USA Today.</p><p class="x_MsoNormal"><strong>Liz Maccarone, '
'CRPC®, SE-AWMA<sup>™</sup></strong></p><p '
'class="x_MsoNormal">Vice President, Senior Financial '
'Advisor</p><p class="x_MsoNormal">Liz joined Merrill Lynch '
'Wealth Management in 2012. Liz works closely with high-net-worth '
'individuals and their families to create personalized and '
'comprehensive strategies that support their goals, including '
'investment management, retirement planning, liability '
'management, and multigenerational planning. Liz values the '
'importance of establishing and cultivating relationships with '
'families including the next generation.</p><p '
'class="x_MsoNormal">Liz graduated from Fairfield University with '
'a dual bachelor’s degree in Finance and Marketing. She began her '
'career working at a boutique investment firm as a Business '
'Development Associate, specializing in commodities and '
'futures.</p></div>\n'
'<div></div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<div class="lc-event-location-address lc-event-section">\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Kassidy Wynne\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#bcd7cbc5d2d2d9fcd2d9cbdfddd2ddddd2d0d5deceddcec592d3cedb">\n'
'<span class="__cf_email__" '
'data-cfemail="82e9f5fbecece7c2ece7f5e1e3ece3e3eceeebe0f0e3f0fbacedf0e5">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'<div class="lc-event-info-item lc-event-contact-phone">\n'
'<span class="lc-font-weight-bold">\n'
' Phone Number:\n'
' \n'
'\n'
' <a href="tel:2035945075">\n'
' (203) 594-5075\n'
' </a>\n'
'</span></div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div></div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
2026-06-16 04:21:11 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-06-16 04:21:11 [canaan_library] 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-06-16 04:21:11 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221993>
{'event_url': 'https://www.newcanaanlibrary.org/event/next-chapter-book-discussion-221993',
'platform_hash': 'd31528a0e6c3e2add072007be3174a16',
'raw_body': '<main class="main-container container" role="main">\n'
'<a id="main-content" tabindex="-1"></a>\n'
'<div>\n'
'<div class="hidden" data-drupal-messages-fallback=""></div>\n'
'<div class="block block-core block-page-title-block '
'position-relative" id="block-website-theme-page-title">\n'
'<h1 class="mb-4">\n'
'<span>Next Chapter Book Discussion</span>\n'
'</h1>\n'
'</div>\n'
'<div class="block block-system block-system-main-block '
'position-relative" id="block-website-theme-content">\n'
'<article class="lc-event lc-event--full node node--type-lc-event '
'node--promoted node--view-mode-full">\n'
'<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
'<h2 class="visually-hidden">Primary tabs</h2>\n'
'<ul class="list-inline"><li class="list-inline-item"><a '
'class="button button--primary btn-sm" '
'data-drupal-link-system-path="events/upcoming" '
'href="/events/upcoming">Upcoming</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/list" '
'href="/events/list">List</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/month/2026/09" '
'href="/events/month/2026/09">Month</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/week/2026/09/29" '
'href="/events/week/2026/09/29">Week</a></li>\n'
'<li class="list-inline-item"><a class="button button--primary '
'btn-sm" data-drupal-link-system-path="events/day/2026/09/29" '
'href="/events/day/2026/09/29">Day</a></li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="node__content lc-event-wrapper">\n'
'<aside class="lc-event-sidebar lc-event__sidebar">\n'
'<div class="lc-print-row">\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-details lc-event-section">\n'
'<div aria-hidden="true" class="lc-date-icon">\n'
'<span class="lc-date-icon__item lc-date-icon__item--month">\n'
' Sep\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day">\n'
' 29\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--year">\n'
' 2026\n'
' </span>\n'
'<span class="lc-date-icon__item lc-date-icon__item--day-name">\n'
' Tue\n'
' </span>\n'
'</div>\n'
'<div class="lc-event-info">\n'
'<h3 class="lc-event-subtitle lc-event-room">\n'
' McLaughlin Meeting Room\n'
' </h3>\n'
'<div class="lc-event-info-item lc-event-info-item--date">\n'
' Tuesday, September 29, 2026\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-info-item--time">\n'
' 4:00pm–5:00pm\n'
' </div>\n'
'<div class="lc-event-info-item">\n'
'<strong>\n'
' Featured </strong>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="lc-repeating-dates lc-event-section">\n'
'<details class="lc-repeating-dates__details">\n'
'<summary class="lc-repeating-dates__toggle">\n'
' Also Occurs On <span '
'class="lc-repeating-dates__toggle-icon" '
'role="presentation">:</span>\n'
'</summary>\n'
'<div class="lc-repeating-dates__wrapper">\n'
'<ul class="lc-repeating-dates__list">\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221983">\n'
' 05/12/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221984">\n'
' 05/26/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221985">\n'
' 06/09/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221986">\n'
' 06/30/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221987">\n'
' 07/07/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221988">\n'
' 07/21/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221989">\n'
' 08/04/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221990">\n'
' 08/18/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221991">\n'
' 09/01/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link" '
'href="/event/next-chapter-book-discussion-221992">\n'
' 09/15/26\n'
' </a>\n'
'</li>\n'
'<li class="lc-repeating-dates__item">\n'
'<a class="lc-repeating-dates__link active" '
'href="/event/next-chapter-book-discussion-221993">\n'
' 09/29/26\n'
' </a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</details>\n'
'</div>\n'
'</div>\n'
'<div class="lc-print-column">\n'
'<div class="lc-event-featured-image lc-event-section">\n'
'<div class="field-container"><a class="use-ajax" '
'data-dialog-options=\'{"width":"auto"}\' '
'data-dialog-type="modal" '
'href="/library-calendar/image-dialog/1507/lc_featured_image?alternative_text=Image%20of%20Next%20Chapter%20Book%20Club%20"><img '
'alt="Image of Next Chapter Book Club " class="img-fluid" '
'height="375" '
'src="https://www.newcanaanlibrary.org/sites/default/files/styles/large/public/2023-08/Next-Chapter-Book-Club-bottom-1.jpg" '
'width="480"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'<section class="lc-event-content lc-event__content">\n'
'<div class="lc-event-share-event">\n'
'<div class="lc-event-actions lc-event-actions--share-event">\n'
'<ul class="lc-event-actions__list">\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"title":"Add This Event To Your '
'Calendar","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221993/add_to_calendar" '
'title="Add To My Calendar">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--calendar"></span>\n'
'<span class="lc-event-actions__text">Add To My Calendar</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link" '
'data-toggle="tooltip" href="#" onclick="window.print()" '
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/221993/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a href="/events/month?program_types%5B25%5D=25">Book '
'Groups</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a href="/events/month?age_groups%5B41%5D=41">Tweens & '
'Teens</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B42%5D=42">Adults</a></span>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div><ul class="lc-messages"><li '
'class="lc-messages__message">Registration is required for this '
'event.</li>\n'
'<li class="lc-messages__message">Registration will close on '
'September 29, 2026 @ 4:00pm.</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<h2 class="lc-event-subtitle">Program Description</h2>\n'
'<h3 class="lc-event-subtitle">Event Details</h3>\n'
'<div class="field-container"><p>The Next Chapter Book Club is a '
'social, community-based book club for older teens and adults '
'with intellectual and developmental disabilities who enjoy '
'reading or listening to stories.\xa0 At every meeting each '
'member is given a turn to read regardless of their reading '
'level. The group reads a page or two and then discusses the '
'book. This club is about supportive friendships and having '
'fun.\xa0 There is no homework with this book club!\xa0 We '
'welcome all abilities and new members are always encouraged to '
'join.\xa0</p><p>Caregivers are also welcome to attend and '
'participate. \xa0\xa0</p><p>This book club meets bi-weekly and '
'is open to individuals ages 16 and up.\xa0</p><p>Registration is '
'required.</p></div>\n'
'<h3 '
'class="lc-event-subtitle">\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000'
'</h3>\n'
'<div class="field-container field-lc-disclaimer">\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Library Parking</div>\n'
'</h4>\n'
'<div class="field-container"><p>The Library leases 76 spaces '
'marked "LIBRARY" in the Center School Lot to offer free parking '
'for our patrons. All other numbered spaces in the lot remain '
'municipal and are subject to metering rates.\xa0View more '
'parking info <a '
'href="https://www.newcanaanlibrary.org/hours-location">here</a>.</p></div>\n'
'</div>\n'
'</div>\n'
'<div><div>\n'
'<h4 class="lc-event-subtitle">\n'
'<div class="field-container">Accessibility</div>\n'
'</h4>\n'
'<div class="field-container"><p>We are committed to ensuring '
'that all patrons have access to information and Library '
'services. To request accommodations, please contact us at '
'203-594-5003 or\xa0<a '
'href="/cdn-cgi/l/email-protection#dcb3b2b0b5b2b9aeb9ba9cb2b9abbfbdb2bdbdb2b0b5beaebdaea5f2b3aebb"><span '
'class="__cf_email__" '
'data-cfemail="6807060401060d1a0d0e28060d1f0b090609090604010a1a091a1146071a0f">[email\xa0'
'protected]</span></a>\xa0with as much notice as possible to '
'allow us to best meet your needs. Our accessibility features '
'include but are not limited to assistive hearing loops in the '
'auditorium, early access to programs, and seating arrangements '
'with space for mobility equipment or service animals.\xa0'
'</p></div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'<div '
'class="lc-registration-ui-registration-form-opener"><fieldset '
'class="js-form-item form-item js-form-wrapper form-wrapper">\n'
'<legend>\n'
'<span class="fieldset-legend">Register for this event</span>\n'
'</legend>\n'
'<div class="fieldset-wrapper">\n'
'<form accept-charset="UTF-8" '
'action="/event/next-chapter-book-discussion-221993" '
'class="lc-registration-ui-registration-form-opener-form" '
'data-drupal-selector="lc-registration-ui-registration-form-opener-form" '
'id="lc-registration-ui-registration-form-opener-form" '
'method="post">\n'
'<input autocomplete="off" '
'data-drupal-selector="form-bx0etasymfwfxouykcpwqjqq8u7qwtchor-sd6euatw" '
'name="form_build_id" type="hidden" '
'value="form-bX0etAsYMFWfxOuyKCPWqjqq8U7QWTChOr-sD6euAtw"/>\n'
'<input '
'data-drupal-selector="edit-lc-registration-ui-registration-form-opener-form" '
'name="form_id" type="hidden" '
'value="lc_registration_ui_registration_form_opener_form"/>\n'
'<button class="button button--primary btn-lg js-form-submit '
'form-submit" data-drupal-selector="edit-offline" '
'id="edit-offline" name="op" type="submit" value=""><div '
'data-drupal-selector="edit-main">Register</div></button><noscript '
'class="text-muted" '
'data-drupal-selector="edit-noscript">JavaScript is required to '
'register for this event.</noscript>\n'
'</form>\n'
'</div>\n'
'</fieldset>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</section>\n'
'<aside class="lc-event-sidebar">\n'
'<div class="lc-event-location">\n'
'<h2 class="lc-event-subtitle">Location Details</h2>\n'
'<div class="lc-event-location-map lc-event-section"><iframe '
'allowfullscreen="" frameborder="0" height="300" '
'src="https://www.google.com/maps?output=embed&q=New+Canaan+Library%2C+151+Main+Street%2C+New+Canaan%2C+CT+06840%2C+United+States" '
'style="width: 100%;" title="New Canaan Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">New Canaan Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 151 Main Street\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' New Canaan,\n'
' CT\n'
' 06840\n'
' </div>\n'
'<div class="lc-event-location__phone">\n'
'<a href="tel:2035945000">\n'
' (203) 594-5000\n'
' </a>\n'
'</div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="https://maps.google.com/?q=151%20Main%20Street,+New%20Canaan,+CT,+06840">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event-address-container">\n'
'<h2 class="lc-event-subtitle">Contact Info</h2>\n'
'<div class="lc-event-info-item lc-event-contact-name">\n'
'<span class="lc-font-weight-bold">\n'
' Name: </span>\n'
'\n'
' Tara Key\n'
' </div>\n'
'<div class="lc-event-info-item lc-event-contact-email">\n'
'<span class="lc-font-weight-bold">\n'
' Email:\n'
' </span>\n'
'<a '
'href="/cdn-cgi/l/email-protection#83f7e8e6fac3ede6f4e0e2ede2e2edefeae1f1e2f1faadecf1e4">\n'
'<span class="__cf_email__" '
'data-cfemail="1b6f707e625b757e6c787a757a7a75777279697a69623574697c">[email\xa0'
'protected]</span>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</aside>\n'
'</div>\n'
'<div>\n'
'<div class="lc-core--extra-field">\n'
'</div>\n'
'</div>\n'
'</article>\n'
'</div>\n'
'</div>\n'
'</main>'}
2026-06-16 04:21:11 [scrapy.core.engine] INFO: Closing spider (finished)
2026-06-16 04:21:11 [scrapy.extensions.feedexport] INFO: Stored csv feed (327 items) in: output/2026/06/16/canaan_library.csv
2026-06-16 04:21:11 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 112458,
'downloader/request_count': 341,
'downloader/request_method_count/GET': 341,
'downloader/response_bytes': 4188012,
'downloader/response_count': 341,
'downloader/response_status_count/200': 341,
'elapsed_time_seconds': 40.831487,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 6, 16, 2, 21, 11, 758286, tzinfo=datetime.timezone.utc),
'httpcompression/response_bytes': 24115890,
'httpcompression/response_count': 341,
'item_scraped_count': 327,
'items_per_minute': 490.5,
'log_count/DEBUG': 1322,
'log_count/ERROR': 316,
'log_count/INFO': 3,
'memusage/max': 92844032,
'memusage/startup': 92844032,
'request_depth_max': 14,
'response_received_count': 341,
'responses_per_minute': 511.5,
'scheduler/dequeued': 341,
'scheduler/dequeued/memory': 341,
'scheduler/enqueued': 341,
'scheduler/enqueued/memory': 341,
'start_time': datetime.datetime(2026, 6, 16, 2, 20, 30, 926799, tzinfo=datetime.timezone.utc)}
2026-06-16 04:21:11 [scrapy.core.engine] INFO: Spider closed (finished)