Head
2026-08-04 19:20:59 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-08-04 19:20:59 [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 19:20:59 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-08-04 19:20:59 [asyncio] DEBUG: Using selector: EpollSelector
2026-08-04 19:20:59 [scrapy.addons] INFO: Enabled addons:
[]
2026-08-04 19:20:59 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-08-04 19:20:59 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-08-04 19:20:59 [scrapy.extensions.telnet] INFO: Telnet Password: ebe17977f9f98de9
2026-08-04 19:20:59 [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 19:20:59 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x709a94f0f4c0>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/lachattown_farm/da5814d7902811f1adf60050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-08-04 19:20:59 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 19:20:59 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-04 19:20:59 [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 19:20:59 [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 19:20:59 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-08-04 19:20:59 [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 19:20:59 [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 19:20:59 [scrapy.core.engine] INFO: Spider opened
2026-08-04 19:20:59 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.lachattown_farm.ListingSpider 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 19:20:59 [lachattown_farm] INFO: Sending scraped events to prod API
2026-08-04 19:20:59 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-08-04 19:20:59 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-08-04 19:21:00 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/index.php> (referer: None)
2026-08-04 19:21:00 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://www.lachattownfarm.org/register.php?eventid=2116>, 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 19:21:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/register.php?eventid=2116> (referer: https://www.lachattownfarm.org/index.php)
2026-08-04 19:21:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/register.php?eventid=2386> (referer: https://www.lachattownfarm.org/index.php)
2026-08-04 19:21:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/register.php?eventid=2115> (referer: https://www.lachattownfarm.org/index.php)
2026-08-04 19:21:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/register.php?eventid=1086> (referer: https://www.lachattownfarm.org/index.php)
2026-08-04 19:21:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lachattownfarm.org/register.php?eventid=2514> (referer: https://www.lachattownfarm.org/index.php)
2026-08-04 19:21:01 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-04 19:21:01 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
2026-08-04 19:21:01 [lachattown_farm] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
2026-08-04 19:21:01 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.lachattownfarm.org/register.php?eventid=2116>
{'event_url': 'https://www.lachattownfarm.org/register.php?eventid=2116',
'platform': 'Lachatt own Farm',
'platform_hash': '2f1c873a619548b03f9b4cdc2146e010',
'raw_body': '<div class="col-md-12 custom-column-bg py-5 mb-1 mb-md-0 '
'appear-animation" data-appear-animation="fadeInTopShorter">\n'
'\t\t\t\t\t\t\t\t<div class="overflow-hidden mb-3">\t\t\t\t<h2 '
'class="text-color-dark font-weight-semi-bold text-6 '
'negative-ls-1 mb-0">Summer CIT Program</h2>\t\t\t\t\t\t\t</div>\n'
' <div> \t<div '
'class="row">\n'
' \t\t<div '
'class="col-md-4">\t\t\t\t\t\t\t\t<div class="owl-carousel '
'owl-theme nav-inside mb-0" data-plugin-options="{\'items\': 1, '
"'margin': 10, 'animateOut': 'fadeOut', 'autoplay': true, "
'\'autoplayTimeout\': 5000, \'loop\': true}"><div><img '
'class="img-fluid" '
Tail
'\t\t\t<footer id="footer" class="footer-reveal '
'custom-bg-color-footer footer-reveal border-top-0 m-0 mt-0 pt-0 '
'pb-0 col-lg-12" style="background-image: '
'url(img/backgrounds/footer-bg.jpg);">\n'
'\t\t\t\t<div class="container col-lg-12">\n'
'\t\t\t\t\t<div class="row pt-5 pb-4 col-lg-12">\n'
'\t\t\t\t\t\t<div class="col-lg-6">\n'
'\t\t\t\t\t\t\t<h2 class=" text-color-light custom-fontsize-6 '
'mb-1 ml-5">ABOUT THE FARM</h2>\n'
'\t\t\t\t\t\t\t<p class="text-color-light ml-5 pr-5">Lachat Town '
'Farm offers farming, environmental education, and cultural '
'experiences for all ages, community-building opportunities, and '
'connection with and enjoyment of our land. <a href="about.php"> '
'Read more...</a></p>\n'
' \n'
'\t\t\t\t\t\t\t<p class="text-color-light ml-5 pr-5 '
'font-weight-bold">Unfortunately Lachat Town Farm is not '
'permitted to host private events.</p>\n'
'<!-----\t\t\t\t\t\t\t<p class="ml-5 pr-5">The mission of Lachat '
'Town Farm is to offer farming, environmental education, and '
'cultural experiences for all ages, community-building '
'opportunities, and to create an important connection with and '
'enjoyment of our land that fosters a happier, healthier and more '
'"grounded" community. We consciously organize programs and '
'events that appeal to and celebrate the diverse groups in our '
'community in terms of age, sex, race, religion, and income '
'level. <a href="about.php">Read more...</a></p>---->\n'
'\t\t\t\t\t\t</div>\n'
'\t\t\t\t\t\t\n'
' <!------- <div class="col-md-4 '
'col-lg-4">\n'
'\t\t\t\t\t\t\t<h2 class=" text-color-light custom-fontsize-6 '
'mb-1">ADMIN</h2>\n'
'\t\t\t\t\t\t\t<ul class="list list-unstyled">\n'
' \t\t\t\t\t\t\t\t<li class="mb-0"><a '
'href="admin.php" class="text-decoration-none">Admin '
'Site</a></li>\n'
'\t\t\t\t\t\t\t\t<li class="mb-0"><a href="admin-signin.php" '
'class="text-decoration-none">Sign In</a></li>\n'
'\t\t\t\t\t\t\t</ul>\n'
'\t\t\t\t\t\t</div>---->\n'
' <div class="col-md-3 col-md-3">\n'
'\t\t\t\t\t\t\t<h2 class="text-color-light custom-fontsize-6 '
'mb-1">LINKS</h2>\n'
'\t\t\t\t\t\t\t<ul class="list list-unstyled">\n'
'\t\t\t\t\t\t\t\t<li class="text-color-light mb-0"><a '
'href="https://www.westonct.gov/" target="_blank" '
'class="text-color-light">Town of Weston</a></li> \n'
'<!--------------- \n'
' <li class="mb-0"><a '
'href="http://www.westonyouthservices.org/" target="_blank">Youth '
'Services</a></li>---------->\n'
' <li class="text-color-light '
'mb-0"><a href="https://www.westonhistoricalsociety.org/" '
'target="_blank" class="text-color-light">Weston History & '
'Culture Center</a></li>\n'
'\t\t\t\t\t\t\t</ul>\n'
'\t\t\t\t\t\t</div>\n'
'\t\t\t\t\t\t<div class="col-md-3 col-md-3">\n'
'\t\t\t\t\t\t\t<h2 class=" text-color-light custom-fontsize-6 '
'mb-1">CONTACT US</h2>\n'
'\t\t\t\t<!----\t\t\t<p><span class="d-block text-color-light '
'custom-fontsize-5 mb-2">Call: <a href="tel:+1234567890" '
'class="text-decoration-none text-color-light '
'custom-fontsize-5">123-456-7890</a></span>---->\n'
'\t\t\t\t\t\t\t<span class="d-block text-color-light opacity-7 '
'custom-fontsize-5"><a href="mailto:info@lachattownfarm.org" '
'class="text-decoration-none text-color-light opacity-7 '
'custom-fontsize-5">info@lachattownfarm.org</a><br>106 Godfrey '
'Road West<br>Weston, CT 06883</span>\n'
'\t\t\t\t\t\t\t<ul class="header-social-icons social-icons d-none '
'd-sm-block ml-1 mt-4">\n'
'\t\t\t\t\t\t\t\t<li class="social-icons-facebook"><a '
'href="https://www.facebook.com/lachattownfarm/" target="_blank" '
'title="Facebook"><i class="fab fa-facebook-f"></i></a></li>\n'
'\t\t\t\t\t\t\t\t<li class="social-icons-instagram"><a '
'href="http://www.instagram.com/" target="_blank" '
'title="Instagram"><i class="fab fa-instagram"></i></a></li>\n'
'<!---\t\t\t\t\t\t\t\t<li class="social-icons-twitter"><a '
'href="http://www.twitter.com/" target="_blank" '
'title="Twitter"><i class="fab fa-twitter"></i></a></li>---->\n'
'\t\t\t\t\t\t\t</ul>\n'
'\t\t\t\t\t\t</div>\n'
'<!--------\n'
'\t\t\t\t<div class="col-md-3 col-lg-3">\n'
'\t\t\t\t\t<h2 class=" text-color-light custom-fontsize-6 '
'mb-1">FOLLOW US</h2>\n'
'\t\t\t\t\t\t<ul class="header-social-icons social-icons d-none '
'd-sm-block ml-1 mt-4">\n'
'\t\t\t\t\t\t\t<li class="social-icons-facebook"><a '
'href="https://www.facebook.com/lachattownfarm/" target="_blank" '
'title="Facebook"><i class="fab fa-facebook-f"></i></a></li>\n'
'\t\t\t\t\t\t\t<li class="social-icons-instagram"><a '
'href="http://www.instagram.com/" target="_blank" '
'title="Instagram"><i class="fab fa-instagram"></i></a></li>\n'
'\t\t\t\t\t\t\t<li class="social-icons-twitter"><a '
'href="http://www.twitter.com/" target="_blank" '
'title="Twitter"><i class="fab fa-twitter"></i></a></li>\n'
'\t\t\t\t\t\t</ul>\n'
'\t\t\t\t\t</div>\n'
'<!----->\n'
'\t\t\t\t\t</div>\n'
'\t\t\t\t</div>\n'
'\t\t\t\t<!----->\n'
' <div class="footer-copyright '
'custom-bg-color-footer-2 border-top-0 mt-0">\n'
'\t\t\t\t\t<div class="container">\n'
'\t\t\t\t\t\t<hr class="solid opacity-1 mb-0">\n'
'\t\t\t\t\t\t<div class="row">\n'
'\t\t\t\t\t\t\t<div class="col mt-4 mb-4">\n'
'\t\t\t\t\t\t<!--\t\t<p class="text-center text-2 mb-0">© '
'Copyright 2021. All Rights Reserved.</p>--->\n'
'\t\t\t\t\t\t\t</div>\n'
'\t\t\t\t\t\t</div>\n'
'\t\t\t\t\t</div>\n'
'\t\t\t\t</div>\n'
'\t\t\t</footer>\n'
'\n'
'\t\t<!-- Vendor -->\n'
'\t\t<script src="vendor/jquery/jquery.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.appear/jquery.appear.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.easing/jquery.easing.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.cookie/jquery.cookie.min.js"></script>\n'
'\t\t<script src="vendor/popper/umd/popper.min.js"></script>\n'
'\t\t<script '
'src="vendor/bootstrap/js/bootstrap.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.validation/jquery.validate.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.easy-pie-chart/jquery.easypiechart.min.js"></script>\n'
'\t\t<script '
'src="vendor/jquery.gmap/jquery.gmap.min.js"></script>\n'
'\t\t<script src="vendor/lazysizes/lazysizes.min.js"></script>\n'
'\t\t<script '
'src="vendor/isotope/jquery.isotope.min.js"></script>\n'
'\t\t<script '
'src="vendor/owl.carousel/owl.carousel.min.js"></script>\n'
'\t\t<script '
'src="vendor/magnific-popup/jquery.magnific-popup.min.js"></script>\n'
'\t\t<script src="vendor/vide/jquery.vide.min.js"></script>\n'
'\t\t<script src="vendor/vivus/vivus.min.js"></script>\n'
'\n'
'\t\t<!-- Theme Base, Components and Settings -->\n'
'\t\t<script src="js/theme.js"></script>\n'
'\t\t<!-- Current Page Vendor and Views -->\n'
'\t\t<script src="js/views/view.contact.js"></script>\n'
'\t\t<!-- Current Page Vendor and Views -->\n'
'\t\t<script '
'src="vendor/rs-plugin/js/jquery.themepunch.tools.min.js"></script>\n'
'\t\t<script '
'src="vendor/rs-plugin/js/jquery.themepunch.revolution.min.js"></script>\n'
'\n'
'\t\t<!-- Current Page Vendor and Views -->\n'
'\t\t<script src="js/views/view.contact.js"></script>\n'
'\n'
'\t\t<!-- Theme Custom -->\n'
'\t\t<script src="js/custom.js"></script>\n'
'\n'
'\t\t<!-- Theme Initialization Files -->\n'
'\t\t<script src="js/theme.init.js"></script>\n'
'\n'
'\t\t<script src="js/examples.portfolio.js"></script>\t\t\n'
'\t\t\n'
'\t\t<script src="js/views/view.home.js"></script>\n'
'\t</div></div>'}
2026-08-04 19:21:04 [scrapy.core.engine] INFO: Closing spider (finished)
2026-08-04 19:21:04 [scrapy.extensions.feedexport] INFO: Stored csv feed (9 items) in: output/2026/08/04/lachattown_farm.csv
2026-08-04 19:21:04 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 8275,
'downloader/request_count': 10,
'downloader/request_method_count/GET': 10,
'downloader/response_bytes': 51885,
'downloader/response_count': 10,
'downloader/response_status_count/200': 10,
'elapsed_time_seconds': 4.166631,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 8, 4, 17, 21, 4, 146145, tzinfo=datetime.timezone.utc),
'httpcompression/response_bytes': 226693,
'httpcompression/response_count': 10,
'item_scraped_count': 9,
'items_per_minute': 135.0,
'log_count/DEBUG': 37,
'log_count/ERROR': 9,
'log_count/INFO': 3,
'log_count/WARNING': 1,
'memusage/max': 99528704,
'memusage/startup': 99528704,
'request_depth_max': 1,
'response_received_count': 10,
'responses_per_minute': 150.0,
'scheduler/dequeued': 10,
'scheduler/dequeued/memory': 10,
'scheduler/enqueued': 10,
'scheduler/enqueued/memory': 10,
'start_time': datetime.datetime(2026, 8, 4, 17, 20, 59, 979514, tzinfo=datetime.timezone.utc)}
2026-08-04 19:21:04 [scrapy.core.engine] INFO: Spider closed (finished)