-
Head
2026-08-12 05:20:52 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
2026-08-12 05:20:52 [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-12 05:20:52 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
2026-08-12 05:20:52 [asyncio] DEBUG: Using selector: EpollSelector
2026-08-12 05:20:52 [scrapy.addons] INFO: Enabled addons:
[]
2026-08-12 05:20:52 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-08-12 05:20:52 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-08-12 05:20:52 [scrapy.extensions.telnet] INFO: Telnet Password: fc8a988a29b85dd0
2026-08-12 05:20:52 [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-12 05:20:52 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'event_scrapers',
'FEED_EXPORT_ENCODING': 'utf-8',
'FEED_URI_PARAMS': <function _feed_uri_params at 0x7ed76022f4c0>,
'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/wilton_library/cfcff6c595fc11f18d790050565fa5d9.log',
'NEWSPIDER_MODULE': 'event_scrapers.spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'SPIDER_MODULES': ['event_scrapers.spiders']}
2026-08-12 05:20:52 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-12 05:20:52 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
2026-08-12 05:20:52 [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-12 05:20:52 [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-12 05:20:52 [scrapy.middleware] INFO: Enabled item pipelines:
['event_scrapers.pipelines.EventScrapersPipeline']
2026-08-12 05:20:52 [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-12 05:20:52 [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-12 05:20:52 [scrapy.core.engine] INFO: Spider opened
2026-08-12 05:20:52 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.wilton_library.MocaWestSpider 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-12 05:20:52 [wilton_library] INFO: Sending scraped events to prod API
2026-08-12 05:20:52 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-08-12 05:20:52 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-08-12 05:20:55 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.wiltonlibrary.org/events/> (referer: None)
2026-08-12 05:20:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://wilton.librarycalendar.com/event/labor-day-49467> (referer: https://www.wiltonlibrary.org/)
2026-08-12 05:20:56 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
2026-08-12 05:20:57 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 10456
2026-08-12 05:20:57 [scrapy.core.scraper] DEBUG: Scraped from <200 https://wilton.librarycalendar.com/event/labor-day-49467>
{'event_url': 'https://wilton.librarycalendar.com/event/labor-day-49467',
'platform': 'Wilton Library',
'platform_hash': 'ed004594c5f221d0f293b66d08e0ee43',
'raw_body': '<div class="dialog-off-canvas-main-canvas" '
'data-off-canvas-main-canvas="">\n'
'<header class="header">\n'
'<div class="container main-container">\n'
'<div class="row">\n'
'<div class="col-12 col-lg-6 branding-col">\n'
'<div>\n'
'<div class="block block-system block-system-branding-block" '
'id="block-calendar-theme-site-branding">\n'
'<a class="site-logo" href="https://www.wiltonlibrary.org/" '
'rel="home">\n'
'<img alt="Homepage of Wilton Library" fetchpriority="high" '
'src="/sites/default/files/Asset%202.png"/>\n'
'</a>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<div class="col-12 col-lg-6 header-content-col">\n'
'<div class="header-content-container">\n'
-
Tail
'title="Print this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--print"></span>\n'
'<span class="lc-event-actions__text">Print</span>\n'
'</a>\n'
'</li>\n'
'<li class="lc-event-actions__item">\n'
'<a class="button button--primary lc-event-action-link use-ajax" '
'data-dialog-options=\'{"dialogClass":"white-popup","title":"Share '
'This Event","width":"auto"}\' data-dialog-type="modal" '
'data-toggle="tooltip" href="/node/52483/share_this_event" '
'title="Share this event">\n'
'<span class="lc-event-actions__icon '
'lc-event-actions__icon--share"></span>\n'
'<span class="lc-event-actions__text">Share</span>\n'
'</a>\n'
'</li>\n'
'</ul>\n'
'</div>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__program-types">\n'
'<h3 class="lc-event-label lc-d-inline">Program Type:</h3>\n'
'<span><a '
'href="/events/month?program_types%5B133%5D=133">Science</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B111%5D=111">STEAM</a></span>, \n'
' <span><a '
'href="/events/month?program_types%5B112%5D=112">Summer '
'Reading</a></span>\n'
'</div>\n'
'<div class="lc-event__categories lc-event__age-groups">\n'
'<h3 class="lc-event-label lc-d-inline">\n'
' Age Group:\n'
' </h3>\n'
'<span><a '
'href="/events/month?age_groups%5B2%5D=2">Children</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B97%5D=97">Preschool</a></span>, \n'
' <span><a '
'href="/events/month?age_groups%5B99%5D=99">Grade '
'School</a></span>\n'
'</div>\n'
'<div class="lc-event__container">\n'
'<div class="lc-alert alert alert-info">\n'
' Please note you are looking at an event that has already '
'happened.\n'
' </div>\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 '
'age 4 to 9.</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 field-container field--name-body '
'field--type-text-with-summary field--label-hidden '
'field-item"><p>Children ages 4 through 8 are invited to join us '
'to dive into science, technology, and engineering, with hands-on '
'activities! Experience a different fun-filled STEM adventure '
'designed especially for curious kids each time. No experience '
'necessary—just bring your curiosity and a big '
'smile!</p><p><strong>Registration required.\xa0 '
'</strong>Drop-ins welcome if space allows.\xa0 '
'<strong>Caregivers must remain on library '
'premises.</strong></p><p>\xa0</p><p>\xa0</p><p><br/>\xa0'
'</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=137+Old+Ridgefield+Rd%2C+Wilton%2C+CT+06897%2C+United+States" '
'style="width: 100%;" title="Wilton Library on Google Maps" '
'width="600"></iframe>\n'
'</div>\n'
'<div class="lc-event-location-address lc-event-section">\n'
'<p class="lc-font-weight-bold">Wilton Library</p>\n'
'<div class="lc-address-line lc-address-line--first">\n'
' 137 Old Ridgefield Rd\n'
' </div>\n'
'<div class="lc-address-line lc-address-line--second">\n'
' Wilton,\n'
' CT\n'
' 06897\n'
' </div>\n'
'<div class="lc-branch-select-map-link">\n'
' See map:\n'
' <a '
'href="http://maps.google.com/?q=137%20Old%20Ridgefield%20Rd,+Wilton,+CT,+06897">\n'
' Google Maps </a>\n'
'</div>\n'
'</div>\n'
'<div 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="mailto:children@wiltonlibrary.org">\n'
' children@wiltonlibrary.org\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:2037626336">\n'
' (203) 762-6336\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>\n'
'<footer class="footer" role="contentinfo">\n'
'<div class="container">\n'
'<div class="footer-row">\n'
'<div class="row">\n'
'<div class="col-md block block-block-content '
'block-block-contenta43113a9-f121-4179-b856-f3fce79c7ddb" '
'id="block-calendar-theme-wlalcanalytics">\n'
'<div class="field field-container field--name-body '
'field--type-text-with-summary field--label-hidden '
'field-item"><!-- Google tag (gtag.js) -->\n'
'<script async="" '
'src="https://www.googletagmanager.com/gtag/js?id=G-8M9CC7FYVD"></script>\n'
'<script>\n'
' window.dataLayer = window.dataLayer || [];\n'
' function gtag(){dataLayer.push(arguments);}\n'
" gtag('js', new Date());\n"
'\n'
" gtag('config', 'G-8M9CC7FYVD');\n"
'</script>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'</div>\n'
'<a aria-label="Back To Top" class="btn back-to-top" href="#" '
'title="Back To Top">\n'
'<i class="fas fa-chevron-up fa-fw"></i>\n'
'<span class="d-block d-lg-none ml-3 ml-lg-0">Back To Top</span>\n'
'</a>\n'
'</div>\n'
'</footer>\n'
'</div>'}
2026-08-12 05:21:32 [scrapy.core.engine] INFO: Closing spider (finished)
2026-08-12 05:21:32 [scrapy.extensions.feedexport] INFO: Stored csv feed (201 items) in: output/2026/08/12/wilton_library.csv
2026-08-12 05:21:32 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 61789,
'downloader/request_count': 202,
'downloader/request_method_count/GET': 202,
'downloader/response_bytes': 1712853,
'downloader/response_count': 202,
'downloader/response_status_count/200': 202,
'elapsed_time_seconds': 39.298877,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 8, 12, 3, 21, 32, 238026, tzinfo=datetime.timezone.utc),
'httpcompression/response_bytes': 6772308,
'httpcompression/response_count': 202,
'item_scraped_count': 201,
'items_per_minute': 309.2307692307692,
'log_count/DEBUG': 805,
'log_count/ERROR': 11,
'log_count/INFO': 3,
'memusage/max': 99540992,
'memusage/startup': 99540992,
'request_depth_max': 1,
'response_received_count': 202,
'responses_per_minute': 310.7692307692308,
'scheduler/dequeued': 202,
'scheduler/dequeued/memory': 202,
'scheduler/enqueued': 202,
'scheduler/enqueued/memory': 202,
'start_time': datetime.datetime(2026, 8, 12, 3, 20, 52, 939149, tzinfo=datetime.timezone.utc)}
2026-08-12 05:21:32 [scrapy.core.engine] INFO: Spider closed (finished)
-
Log
/1/log/utf8/event_scrapers/wilton_library/cfcff6c595fc11f18d790050565fa5d9/?job_finished=True
-
Source
http://127.0.0.1:6800/logs/event_scrapers/wilton_library/cfcff6c595fc11f18d790050565fa5d9.log