PROJECT (event_scrapers)
SPIDER (norwalk_garden_club)
2026-08-04 22:01:13 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-08-04 22:01:13 [scrapy.utils.log] INFO: Versions:
{'lxml': '6.0.2',
'libxml2': '2.14.6',
'cssselect': '1.3.0',
'parsel': '1.10.0',
'w3lib': '2.0.0',
'Twisted': '25.5.0',
'Python': '3.12.3 (main, Jun 19 2026, 12:46:00) [GCC 13.3.0]',
'pyOpenSSL': '25.3.0 (OpenSSL 3.5.4 30 Sep 2025)',
'cryptography': '46.0.3',
'Platform': 'Linux-6.8.0-90-generic-x86_64-with-glibc2.39'}
2026-08-04 22:01:13 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-08-04 22:01:13 [asyncio] DEBUG: Using selector: EpollSelector
2026-08-04 22:01:13 [scrapy.addons] INFO: Enabled addons:
[]
2026-08-04 22:01:13 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-08-04 22:01:13 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-08-04 22:01:13 [scrapy.extensions.telnet] INFO: Telnet Password: 718ccee28b1f4295
2026-08-04 22:01:13 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.logcount.LogCount',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.feedexport.FeedExporter',
'scrapy.extensions.logstats.LogStats']
2026-08-04 22:01:13 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x749cd672b4c0>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/norwalk_garden_club/3c060dea903f11f1a9b50050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-08-04 22:01:13 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 22:01:13 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 22:01:13 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware',
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2026-08-04 22:01:13 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.start.StartSpiderMiddleware',
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware',
'scrapy_zyte_api.ScrapyZyteAPIRefererSpiderMiddleware']
2026-08-04 22:01:13 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-08-04 22:01:13 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:41: ScrapyDeprecationWarning: EventScrapersPipeline.open_spider() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
self._check_mw_method_spider_arg(pipe.open_spider)
2026-08-04 22:01:13 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
self._check_mw_method_spider_arg(pipe.process_item)
2026-08-04 22:01:13 [scrapy.core.engine] INFO: Spider opened
2026-08-04 22:01:13 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.norwalk_garden_club.NorwalkGardenClubSpider defines the deprecated start_requests() method. start_requests() has been deprecated in favor of a new method, start(), to support asynchronous code execution. start_requests() will stop being called in a future version of Scrapy. If you use Scrapy 2.13 or higher only, replace start_requests() with start(); note that start() is a coroutine (async def). If you need to maintain compatibility with lower Scrapy versions, when overriding start_requests() in a spider class, override start() as well; you can use super() to reuse the inherited start() implementation without copy-pasting. See the release notes of Scrapy 2.13 for details: https://docs.scrapy.org/en/2.13/news.html
warn(
2026-08-04 22:01:13 [norwalk_garden_club] INFO: Sending scraped events to prod API
2026-08-04 22:01:13 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-08-04 22:01:13 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-08-04 22:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalkgardenclub.org/events> (referer: None)
2026-08-04 22:01:14 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://www.norwalkgardenclub.org/events/garden-conservancy-tour>, and there are cookies in the cookiejar, but ZYTE_API_EXPERIMENTAL_COOKIES_ENABLED is False, so automatic mapping will not map cookies for this or any other request. To silence this warning, disable cookies for all requests that use automatic mapping, either with the COOKIES_ENABLED setting or with the dont_merge_cookies request metadata key.
2026-08-04 22:01:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalkgardenclub.org/events/garden-conservancy-tour> (referer: https://www.norwalkgardenclub.org/events)
2026-08-04 22:01:15 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalkgardenclub.org/events/woodpecker-walk> (referer: https://www.norwalkgardenclub.org/events)
2026-08-04 22:01:15 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.norwalkgardenclub.org/events/bonsai-show> (referer: https://www.norwalkgardenclub.org/events)
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-08-04 22:01:15 [norwalk_garden_club] ERROR: API error 500:
<!doctype html>
<html lang="en">
<head>
<title>Server Error (500)</title>
</head>
<body>
<h1>Server Error (500)</h1><p></p>
</body>
</html>
2026-08-04 22:01:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.norwalkgardenclub.org/events/garden-conservancy-tour>
{'event_url': 'https://www.norwalkgardenclub.org/events/garden-conservancy-tour',
'platform': 'Norwalk Garden Club',
'platform_hash': '294748ee333808cb1547818646c04ebf',
'raw_body': '<div class="events-item-wrapper events-stacked-item-wrapper" '
'data-content-field="main-content" data-item-id="">\n'
' <div class="sqs-events-collection-item events events-item">\n'
'\n'
' <a href="/events" class="eventitem-backlink">Back to All '
'Events</a>\n'
'\n'
' \n'
' <article class="eventitem " '
'id="article-6a5a7886678c9c6aa0dff5cc" '
'data-item-id="6a5a7886678c9c6aa0dff5cc">\n'
'\n'
' <div class="eventitem-column-meta">\n'
'\n'
' <h1 class="eventitem-title" '
'data-content-field="title">Garden Conservancy Tour</h1>\n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-date-time-container" '
'data-content-field="event-date-time-range">\n'
'\n'
' \n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-date '
'event-meta-item">\n'
' <time class="event-date" '
'datetime="2026-08-29">Saturday, August 29, 2026</time>\n'
' </li>\n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-time '
'event-meta-item">\n'
' <span class="event-time-localized">\n'
' <time class="event-time-localized-start" '
'datetime="2026-08-29">10:00\u202fAM</time>\n'
' <span class="event-datetime-divider"></span>\n'
' <time class="event-time-localized-end" '
'datetime="2026-08-29">2:00\u202fPM</time>\n'
' </span>\n'
' </li>\n'
'\n'
' \n'
'\n'
' </ul>\n'
'\n'
' \n'
' \n'
' \n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-addtocalendar-container">\n'
' <li class="eventitem-meta-item eventitem-meta-export '
'event-meta-item">\n'
' <a '
'href="http://www.google.com/calendar/event?action=TEMPLATE&text=Garden%20Conservancy%20Tour&dates=20260829T140000Z/20260829T180000Z" '
'class="eventitem-meta-export-google">Google Calendar</a>\n'
' <span class="eventitem-meta-export-divider"></span>\n'
' <a href="/events/garden-conservancy-tour?format=ical" '
'class="eventitem-meta-export-ical">ICS</a>\n'
' </li>\n'
' </ul>\n'
'\n'
' \n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="eventitem-column-content">\n'
'\n'
' <div class="sqs-layout sqs-grid-12 columns-12" '
'data-layout-label="Post Body" data-type="item" '
'id="item-6a5a7886678c9c6aa0dff5cc"><div class="row sqs-row"><div '
'class="col sqs-col-12 span-12"><div class="sqs-block '
'website-component-block sqs-block-website-component '
'sqs-block-html html-block" '
'data-block-css=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.styles.css"]\' '
'data-block-scripts=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.visitor.js"]\' '
'data-block-type="1337" '
'data-definition-name="website.components.html" '
'data-sqsp-block="text" '
'data-website-component-id="305dad5329b190581d97" '
'id="block-305dad5329b190581d97"><div '
'class="sqs-block-content"><div '
'class="sqs-text-block-container">\n'
' \n'
' <div class="sqs-html-content" data-sqsp-text-block-content><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Sleepy Cat Farm is open for '
'viewing only twice a year though the Garden Conservancy '
'Program. These 13 acres in Greenwich have evolved over 25 years '
'into a garden wonderland, featuring both manicured and wild '
'vistas, including a path along a woodland stream bordered by an '
'oak and beech forest, Japanese garden, koi pond, fountains, '
'terraces, arbors, boxwood topiary, and more.</p><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Register on the Garden '
'Conservancy website. Cost, $10.</p></div>\n'
'\n'
'\n'
' \n'
'<style id="container-styles">#block-305dad5329b190581d97 {\n'
' \n'
' \n'
' \n'
' }\n'
'\n'
' #block-305dad5329b190581d97 .sqs-html-content {\n'
' \n'
' }\n'
'\n'
' #block-305dad5329b190581d97 {\n'
' mix-blend-mode: var(--tweak-text-block-blend\n'
' );\n'
' border-radius: var(--tweak-text-block-radius);\n'
' }\n'
'\n'
' \n'
' \n'
'\n'
'\n'
'\n'
' \n'
' \n'
'\n'
' \n'
'</style>\n'
'\n'
'<style id="override-container-styles">\n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
'#block-305dad5329b190581d97 {\n'
' \n'
' }\n'
' }\n'
' \n'
' \n'
' @media screen and (max-width: 767px) {\n'
' #block-305dad5329b190581d97 .sqs-html-content {\n'
' \n'
' }\n'
' }\n'
' \n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
' \n'
' \n'
' \n'
' }</style>\n'
'\n'
'<style class="transform-overrides-vars">\n'
' \n'
' </style>\n'
'\n'
'\n'
'\n'
'</div>\n'
'</div></div></div></div></div>\n'
'\n'
' \n'
' <div class="eventitem-content-footer">\n'
'\n'
' \n'
'\n'
' \n'
' </div>\n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="clear"></div>\n'
'\n'
' </article>\n'
'\n'
' \n'
'\n'
' <div class="clear"></div>\n'
'\n'
'</div>\n'
'\n'
'</div>'}
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-08-04 22:01:15 [norwalk_garden_club] ERROR: API error 500:
<!doctype html>
<html lang="en">
<head>
<title>Server Error (500)</title>
</head>
<body>
<h1>Server Error (500)</h1><p></p>
</body>
</html>
2026-08-04 22:01:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.norwalkgardenclub.org/events/woodpecker-walk>
{'event_url': 'https://www.norwalkgardenclub.org/events/woodpecker-walk',
'platform': 'Norwalk Garden Club',
'platform_hash': '294748ee333808cb1547818646c04ebf',
'raw_body': '<div class="events-item-wrapper events-stacked-item-wrapper" '
'data-content-field="main-content" data-item-id="">\n'
' <div class="sqs-events-collection-item events events-item">\n'
'\n'
' <a href="/events" class="eventitem-backlink">Back to All '
'Events</a>\n'
'\n'
' \n'
' <article class="eventitem " '
'id="article-6a5a76f38c4854651ecfd283" '
'data-item-id="6a5a76f38c4854651ecfd283">\n'
'\n'
' <div class="eventitem-column-meta">\n'
'\n'
' <h1 class="eventitem-title" '
'data-content-field="title">Woodpecker Walk</h1>\n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-date-time-container" '
'data-content-field="event-date-time-range">\n'
'\n'
' \n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-date '
'event-meta-item">\n'
' <time class="event-date" '
'datetime="2026-08-22">Saturday, August 22, 2026</time>\n'
' </li>\n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-time '
'event-meta-item">\n'
' <span class="event-time-localized">\n'
' <time class="event-time-localized-start" '
'datetime="2026-08-22">7:30\u202fAM</time>\n'
' <span class="event-datetime-divider"></span>\n'
' <time class="event-time-localized-end" '
'datetime="2026-08-22">10:00\u202fAM</time>\n'
' </span>\n'
' </li>\n'
'\n'
' \n'
'\n'
' </ul>\n'
'\n'
' \n'
' \n'
' \n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-addtocalendar-container">\n'
' <li class="eventitem-meta-item eventitem-meta-export '
'event-meta-item">\n'
' <a '
'href="http://www.google.com/calendar/event?action=TEMPLATE&text=Woodpecker%20Walk&dates=20260822T113000Z/20260822T140000Z" '
'class="eventitem-meta-export-google">Google Calendar</a>\n'
' <span class="eventitem-meta-export-divider"></span>\n'
' <a href="/events/woodpecker-walk?format=ical" '
'class="eventitem-meta-export-ical">ICS</a>\n'
' </li>\n'
' </ul>\n'
'\n'
' \n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="eventitem-column-content">\n'
'\n'
' <div class="sqs-layout sqs-grid-12 columns-12" '
'data-layout-label="Post Body" data-type="item" '
'id="item-6a5a76f38c4854651ecfd283"><div class="row sqs-row"><div '
'class="col sqs-col-12 span-12"><div class="sqs-block '
'website-component-block sqs-block-website-component '
'sqs-block-html html-block" '
'data-block-css=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.styles.css"]\' '
'data-block-scripts=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.visitor.js"]\' '
'data-block-type="1337" '
'data-definition-name="website.components.html" '
'data-sqsp-block="text" '
'data-website-component-id="5c38b5c52baa23f621da" '
'id="block-5c38b5c52baa23f621da"><div '
'class="sqs-block-content"><div '
'class="sqs-text-block-container">\n'
' \n'
' <div class="sqs-html-content" data-sqsp-text-block-content><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Take an early morning guided '
'woodpecker walk through the Bartlett Arboretum grounds, followed '
'by a PBS documentary, narrated by Paul Giamatti, featuring '
'woodpeckers around the world.</p><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Bartlett Arboretum, 151 Brookdale '
'Road, Stamford</p></div>\n'
'\n'
'\n'
' \n'
'<style id="container-styles">#block-5c38b5c52baa23f621da {\n'
' \n'
' \n'
' \n'
' }\n'
'\n'
' #block-5c38b5c52baa23f621da .sqs-html-content {\n'
' \n'
' }\n'
'\n'
' #block-5c38b5c52baa23f621da {\n'
' mix-blend-mode: var(--tweak-text-block-blend\n'
' );\n'
' border-radius: var(--tweak-text-block-radius);\n'
' }\n'
'\n'
' \n'
' \n'
'\n'
'\n'
'\n'
' \n'
' \n'
'\n'
' \n'
'</style>\n'
'\n'
'<style id="override-container-styles">\n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
'#block-5c38b5c52baa23f621da {\n'
' \n'
' }\n'
' }\n'
' \n'
' \n'
' @media screen and (max-width: 767px) {\n'
' #block-5c38b5c52baa23f621da .sqs-html-content {\n'
' \n'
' }\n'
' }\n'
' \n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
' \n'
' \n'
' \n'
' }</style>\n'
'\n'
'<style class="transform-overrides-vars">\n'
' \n'
' </style>\n'
'\n'
'\n'
'\n'
'</div>\n'
'</div></div></div></div></div>\n'
'\n'
' \n'
' <div class="eventitem-content-footer">\n'
'\n'
' \n'
'\n'
' \n'
' </div>\n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="clear"></div>\n'
'\n'
' </article>\n'
'\n'
' \n'
'\n'
' <div class="clear"></div>\n'
'\n'
'</div>\n'
'\n'
'</div>'}
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-04 22:01:15 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 500 145
2026-08-04 22:01:15 [norwalk_garden_club] ERROR: API error 500:
<!doctype html>
<html lang="en">
<head>
<title>Server Error (500)</title>
</head>
<body>
<h1>Server Error (500)</h1><p></p>
</body>
</html>
2026-08-04 22:01:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.norwalkgardenclub.org/events/bonsai-show>
{'event_url': 'https://www.norwalkgardenclub.org/events/bonsai-show',
'platform': 'Norwalk Garden Club',
'platform_hash': '294748ee333808cb1547818646c04ebf',
'raw_body': '<div class="events-item-wrapper events-stacked-item-wrapper" '
'data-content-field="main-content" data-item-id="">\n'
' <div class="sqs-events-collection-item events events-item">\n'
'\n'
' <a href="/events" class="eventitem-backlink">Back to All '
'Events</a>\n'
'\n'
' \n'
' <article class="eventitem " '
'id="article-6a5a7383a4550675304ec64b" '
'data-item-id="6a5a7383a4550675304ec64b">\n'
'\n'
' <div class="eventitem-column-meta">\n'
'\n'
' <h1 class="eventitem-title" '
'data-content-field="title">Bonsai Show</h1>\n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-date-time-container" '
'data-content-field="event-date-time-range">\n'
'\n'
' \n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-date '
'event-meta-item">\n'
' <time class="event-date" '
'datetime="2026-08-08">Saturday, August 8, 2026</time>\n'
' </li>\n'
'\n'
' <li class="eventitem-meta-item eventitem-meta-time '
'event-meta-item">\n'
' <span class="event-time-localized">\n'
' <time class="event-time-localized-start" '
'datetime="2026-08-08">10:00\u202fAM</time>\n'
' <span class="event-datetime-divider"></span>\n'
' <time class="event-time-localized-end" '
'datetime="2026-08-08">2:00\u202fPM</time>\n'
' </span>\n'
' </li>\n'
'\n'
' \n'
'\n'
' </ul>\n'
'\n'
' \n'
' \n'
' \n'
'\n'
' <ul class="eventitem-meta event-meta '
'event-meta-addtocalendar-container">\n'
' <li class="eventitem-meta-item eventitem-meta-export '
'event-meta-item">\n'
' <a '
'href="http://www.google.com/calendar/event?action=TEMPLATE&text=Bonsai%20Show&dates=20260808T140000Z/20260808T180000Z" '
'class="eventitem-meta-export-google">Google Calendar</a>\n'
' <span class="eventitem-meta-export-divider"></span>\n'
' <a href="/events/bonsai-show?format=ical" '
'class="eventitem-meta-export-ical">ICS</a>\n'
' </li>\n'
' </ul>\n'
'\n'
' \n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="eventitem-column-content">\n'
'\n'
' <div class="sqs-layout sqs-grid-12 columns-12" '
'data-layout-label="Post Body" data-type="item" '
'id="item-6a5a7383a4550675304ec64b"><div class="row sqs-row"><div '
'class="col sqs-col-12 span-12"><div class="sqs-block '
'website-component-block sqs-block-website-component '
'sqs-block-html html-block" '
'data-block-css=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.styles.css"]\' '
'data-block-scripts=\'["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/1f778dd0-146a-42aa-a161-0f11419c8e7e_809/website.components.html.visitor.js"]\' '
'data-block-type="1337" '
'data-definition-name="website.components.html" '
'data-sqsp-block="text" '
'data-website-component-id="98471b78fd8f0203ef15" '
'id="block-98471b78fd8f0203ef15"><div '
'class="sqs-block-content"><div '
'class="sqs-text-block-container">\n'
' \n'
' <div class="sqs-html-content" data-sqsp-text-block-content><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Join the Bonsai Society of '
'Hartford at the Connecticut College Arboretum for an exhibit of '
'beautiful bonsai trees featuring live specimens including both '
'Japanese and native American species. At 1:00, Vincent Tanner, '
'BSH President, will give an introductory presentation on bonsai '
'history, horticulture, and aesthetics.</p><p '
'style="white-space:pre-wrap;" '
'data-rte-preserve-empty="true">Connecticut College, 270 Mohegan '
'Avenue, New London, '
'06320. '
'Arboretum Office: 33 Gallows Lane.</p></div>\n'
'\n'
'\n'
' \n'
'<style id="container-styles">#block-98471b78fd8f0203ef15 {\n'
' \n'
' \n'
' \n'
' }\n'
'\n'
' #block-98471b78fd8f0203ef15 .sqs-html-content {\n'
' \n'
' }\n'
'\n'
' #block-98471b78fd8f0203ef15 {\n'
' mix-blend-mode: var(--tweak-text-block-blend\n'
' );\n'
' border-radius: var(--tweak-text-block-radius);\n'
' }\n'
'\n'
' \n'
' \n'
'\n'
'\n'
'\n'
' \n'
' \n'
'\n'
' \n'
'</style>\n'
'\n'
'<style id="override-container-styles">\n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
'#block-98471b78fd8f0203ef15 {\n'
' \n'
' }\n'
' }\n'
' \n'
' \n'
' @media screen and (max-width: 767px) {\n'
' #block-98471b78fd8f0203ef15 .sqs-html-content {\n'
' \n'
' }\n'
' }\n'
' \n'
' @media screen and (max-width: 767px) {\n'
' \n'
' \n'
'\n'
' \n'
' \n'
' \n'
' }</style>\n'
'\n'
'<style class="transform-overrides-vars">\n'
' \n'
' </style>\n'
'\n'
'\n'
'\n'
'</div>\n'
'</div></div></div></div></div>\n'
'\n'
' \n'
' <div class="eventitem-content-footer">\n'
'\n'
' \n'
'\n'
' \n'
' </div>\n'
' \n'
'\n'
' </div>\n'
'\n'
' <div class="clear"></div>\n'
'\n'
' </article>\n'
'\n'
' \n'
'\n'
' <div class="clear"></div>\n'
'\n'
'</div>\n'
'\n'
'</div>'}
2026-08-04 22:01:15 [scrapy.core.engine] INFO: Closing spider (finished)
2026-08-04 22:01:15 [scrapy.extensions.feedexport] INFO: Stored csv feed (3 items) in: output/2026/08/04/norwalk_garden_club.csv
2026-08-04 22:01:15 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 1353,
'downloader/request_count': 4,
'downloader/request_method_count/GET': 4,
'downloader/response_bytes': 98887,
'downloader/response_count': 4,
'downloader/response_status_count/200': 4,
'elapsed_time_seconds': 1.871507,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 8, 4, 20, 1, 15, 635083, tzinfo=datetime.timezone.utc),
'httpcompression/response_bytes': 667749,
'httpcompression/response_count': 4,
'item_scraped_count': 3,
'items_per_minute': 180.0,
'log_count/DEBUG': 13,
'log_count/ERROR': 3,
'log_count/INFO': 3,
'log_count/WARNING': 1,
'memusage/max': 99770368,
'memusage/startup': 99770368,
'request_depth_max': 1,
'response_received_count': 4,
'responses_per_minute': 240.0,
'scheduler/dequeued': 4,
'scheduler/dequeued/memory': 4,
'scheduler/enqueued': 4,
'scheduler/enqueued/memory': 4,
'start_time': datetime.datetime(2026, 8, 4, 20, 1, 13, 763576, tzinfo=datetime.timezone.utc)}
2026-08-04 22:01:15 [scrapy.core.engine] INFO: Spider closed (finished)
PROJECT (event_scrapers)
SPIDER (norwalk_garden_club)