Desktop version Jobs
  • Analysis
  • Categories
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spiderwilton_library
    jobcfcff6c595fc11f18d790050565fa5d9
    first_log_time2026-08-12 05:20:52
    latest_log_time2026-08-12 05:21:32
    runtime0:00:40
    crawled_pages 202
    scraped_items 201
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count11
    log_warning_count3
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_item{'event_url': 'https://wilton.librarycalendar.com/event/summer-stem-explorers-hands-science-library-52483', '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' '<div class="block block-lc-branch-select ' 'block-lc-branch-select-block" ' 'id="block-calendar-theme-branchselect">\n' '<div class="lc-branch-select">\n' '<button class="button js-hours-toggle hours-toggle" ' 'type="button">\n' '<span class="hours-toggle__icon">Toggle Library</span> Hours ' '</button>\n' '<div class="lc-branch-select__wrapper ' 'lc-branch-select__wrapper--single">\n' '<div class="lc-branch-select__content-container">\n' '<div>\n' '<div class="lc-branch-select__content">\n' '<div>\n' '<h2><a href="/branch/wilton-library">\n' '<div class="field field-container field--name-name ' 'field--type-string field--label-hidden field-item">Wilton ' 'Library</div>\n' '</a></h2>\n' '<div class="lc-branch-select__branch ' 'lc-branch-select__branch--72" data-branch="72">\n' '<div class="lc-branch-select__branch--hidden-region">\n' '<div class="block block-layout-builder ' 'block-field-blocktaxonomy-termlc-library-branchfield-lc-branch-hours">\n' '<div class="field field-container ' 'field--name-field-lc-branch-hours field--type-office-hours ' 'field--label-hidden field-items">\n' '<div class="field-item"><div class="office-hours office-hours ' 'office-hours-status--closed"><div ' 'class="office-hours__item"><span ' 'class="office-hours__item-slots">10:00am-8:00pm</span><span><br/></span></div></div></div>\n' '</div>\n' '</div>\n' '</div>\n' '<div class="lc-branch-selector-content-row">\n' '<div class="lc-branch-selector-content-col">\n' '<div>\n' '<div class="block block-layout-builder ' 'block-field-blocktaxonomy-termlc-library-branchfield-lc-address">\n' '<div class="field field-container field--name-field-lc-address ' 'field--type-address field--label-hidden field-item"><p ' 'class="address" translate="no"><span class="address-line1">137 ' 'Old Ridgefield Rd</span><br/>\n' '<span class="locality">Wilton</span>, <span ' 'class="administrative-area">CT</span> <span ' 'class="postal-code">06897</span><br/>\n' '<span class="country">United States</span></p></div>\n' '</div>\n' '<div class="block block-layout-builder ' 'block-extra-field-blocktaxonomy-termlc-library-branchgoogle-maps-link">\n' '<a ' 'href="https://www.google.com/maps?q=137+Old+Ridgefield+Rd%2C+Wilton%2C+CT+06897%2C+United+States" ' 'target="_blank">View on Google Maps</a>\n' '</div>\n' '</div>\n' '</div>\n' '<div class="lc-branch-selector-content-col">\n' '<div>\n' '<div class="block block-layout-builder ' 'block-field-blocktaxonomy-termlc-library-branchfield-lc-branch-hours">\n' '<div class="field field-container ' 'field--name-field-lc-branch-hours field--type-office-hours ' 'field--label-hidden field-items">\n' '<div class="field-item"><div class="office-hours office-hours ' 'office-hours-status--closed"><div ' 'class="office-hours__item"><span ' 'class="office-hours__item-label">Sun: </span><span ' 'class="office-hours__item-comments">Closed</span><span><br/></span></div><div ' 'class="office-hours__item"><span ' 'class="office-hours__item-label">Mon-Thu: </span><span ' 'class="office-hours__item-slots">10:00am-8:00pm</span><span><br/></span></div><div ' 'class="office-hours__item"><span ' 'class="office-hours__item-label">Fri: </span><span ' 'class="office-hours__item-slots">10:00am-6:00pm</span><span><br/></span></div><div ' 'class="office-hours__item"><span ' 'class="office-hours__item-label">Sat: </span><span ' 'class="office-hours__item-slots">10:00am-5:00pm</span><span><br/></span></div></div></div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '</div>\n' '<div>\n' '<div class="container main-container">\n' '<a class="visually-hidden focusable skip-link" ' 'href="#block-calendar-theme-main-menu-skip-link">\n' ' Skip navigation\n' ' </a>\n' '<nav aria-labelledby="block-calendar-theme-main-menu-heading" ' 'class="navbar navbar-expand-lg" ' 'id="block-calendar-theme-main-menu" role="navigation">\n' '<div class="container-fluid px-lg-0">\n' '<h2 class="visually-hidden" ' 'id="block-calendar-theme-main-menu-heading">Main ' 'navigation</h2>\n' '<button aria-controls="block-calendar-theme-main-menu-collapse" ' 'aria-expanded="false" class="navbar-toggler" ' 'data-bs-target="#block-calendar-theme-main-menu-collapse" ' 'data-bs-toggle="collapse" type="button">\n' '<i class="fas fa-bars"></i>\n' '<span class="visually-hidden">\n' ' Toggle </span>\n' '\n' ' Main Menu </button>\n' '<div class="collapse navbar-collapse mt-2 mt-lg-0" ' 'id="block-calendar-theme-main-menu-collapse">\n' '<ul class="nav navbar-nav">\n' '<li class="nav-item">\n' '<a class="nav-link" ' 'href="https://www.wiltonlibrary.org/">Library Website</a>\n' '</li>\n' '<li class="nav-item">\n' '<a class="nav-link" data-drupal-link-system-path="events" ' 'href="/events">Events Calendar</a>\n' '</li>\n' '<li class="nav-item">\n' '<a class="nav-link" ' 'href="https://www.wiltonlibrary.org/studyrooms">Study Rooms</a>\n' '</li>\n' '<li class="nav-item">\n' '<a class="nav-link" data-drupal-link-system-path="node/1" ' 'href="/reserve-room">Reserve a Room</a>\n' '</li>\n' '<li class="nav-item">\n' '<a class="nav-link" ' 'href="https://wilton.librarycalendar.com/reserve-room/bloomberg-terminal">Bloomberg ' 'Terminal</a>\n' '</li>\n' '</ul>\n' '</div>\n' '</div>\n' '</nav>\n' '<a id="block-calendar-theme-main-menu-skip-link" ' 'tabindex="-1"></a>\n' '</div>\n' '</div>\n' '</header>\n' '<main class="content-container container main-container" ' 'role="main">\n' '<a id="main-content" tabindex="-1"></a>\n' '<div>\n' '<div class="hidden" data-drupal-messages-fallback=""></div>\n' '<div class="block block-system block-system-breadcrumb-block" ' 'id="block-calendar-theme-breadcrumbs">\n' '<nav aria-label="Breadcrumb" role="navigation">\n' '<ol class="breadcrumb">\n' '<li class="breadcrumb-item">\n' '<a href="/">Home</a>\n' '</li>\n' '</ol>\n' '</nav>\n' '</div>\n' '<div class="block block-core block-page-title-block" ' 'id="block-calendar-theme-page-title">\n' '<h1 class="mb-4">\n' '<span>Summer STEM Explorers : Hands-On Science at the ' 'Library</span>\n' '</h1>\n' '</div>\n' '<div class="block block-system block-system-main-block" ' 'id="block-calendar-theme-content">\n' '<article class="lc-event lc-event--full node node--type-lc-event ' 'node--promoted node--view-mode-full">\n' '<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> ' '<h2 class="visually-hidden">Primary tabs</h2>\n' '<ul class="list-inline"><li class="list-inline-item"><a ' 'class="button button--primary btn-sm" ' 'data-drupal-link-system-path="events/upcoming" ' 'href="/events/upcoming">Upcoming</a></li>\n' '<li class="list-inline-item"><a class="button button--primary ' 'btn-sm" data-drupal-link-system-path="events/list" ' 'href="/events/list">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' " Children's Program 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' ' 4:00pm–5:00pm\n' ' </div>\n' '</div>\n' '</div>\n' '<div class="lc-repeating-dates lc-event-section">\n' '\n' '</div>\n' '</div>\n' '<div class="lc-print-column">\n' '<div class="lc-event-featured-image lc-event-section">\n' '<div class="field field-container field--name-field-lc-image ' 'field--type-image field--label-hidden field-item"><a ' 'class="use-ajax" data-dialog-options=\'{"width":"auto"}\' ' 'data-dialog-type="modal" ' 'href="/library-calendar/image-dialog/896/lc_featured_image?alternative_text=STEM%20Explorers"><img ' 'alt="STEM Explorers" class="img-fluid" height="270" ' 'src="https://wilton.librarycalendar.com/sites/default/files/styles/large/public/2025-08/STEM%20Explorers.jpg" ' 'width="350"/>\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/52483/add_to_calendar" ' 'title="Add To My Calendar">\n' '<span class="lc-event-actions__icon ' 'lc-event-actions__icon--calendar"></span>\n' '<span class="lc-event-actions__text">Add To My Calendar</span>\n' '</a>\n' '</li>\n' '<li class="lc-event-actions__item">\n' '<a class="button button--primary lc-event-action-link" ' 'data-toggle="tooltip" href="#" onclick="window.print()" ' 'title="Print this event">\n' '<span class="lc-event-actions__icon ' 'lc-event-actions__icon--print"></span>\n' '<span class="lc-event-actions__text">Print</span>\n' '</a>\n' '</li>\n' '<li class="lc-event-actions__item">\n' '<a class="button button--primary lc-event-action-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&amp;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>'}
    • WARNING+

    • error_logs
      11 in total

      2026-08-12 05:20:59 [wilton_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-08-12 05:21:06 [wilton_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-08-12 05:21:06 [wilton_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-08-12 05:21:06 [wilton_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 05:21:06 [wilton_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-08-12 05:21:06 [wilton_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-08-12 05:21:16 [wilton_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 05:21:17 [wilton_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-08-12 05:21:17 [wilton_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-08-12 05:21:20 [wilton_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-08-12 05:21:21 [wilton_library] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
    • warning_logs
      3 in total

      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 [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(
      

      INFO

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      fc8a988a29b85dd0
    • latest_crawl

      2026-08-12 05:21:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://wilton.librarycalendar.com/event/summer-stem-explorers-hands-science-library-52483> (referer: https://www.wiltonlibrary.org/)
    • latest_stat

      2026-08-12 05:20:52 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    • latest_scrape

      2026-08-12 05:21:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://wilton.librarycalendar.com/event/summer-stem-explorers-hands-science-library-52483>
    • latest_item

      {'event_url': 'https://wilton.librarycalendar.com/event/summer-stem-explorers-hands-science-library-52483',
       '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'
                   '<div class="block block-lc-branch-select '
                   'block-lc-branch-select-block" '
                   'id="block-calendar-theme-branchselect">\n'
                   '<div class="lc-branch-select">\n'
                   '<button class="button js-hours-toggle hours-toggle" '
                   'type="button">\n'
                   '<span class="hours-toggle__icon">Toggle Library</span> Hours    '
                   '</button>\n'
                   '<div class="lc-branch-select__wrapper '
                   'lc-branch-select__wrapper--single">\n'
                   '<div class="lc-branch-select__content-container">\n'
                   '<div>\n'
                   '<div class="lc-branch-select__content">\n'
                   '<div>\n'
                   '<h2><a href="/branch/wilton-library">\n'
                   '<div class="field field-container field--name-name '
                   'field--type-string field--label-hidden field-item">Wilton '
                   'Library</div>\n'
                   '</a></h2>\n'
                   '<div class="lc-branch-select__branch '
                   'lc-branch-select__branch--72" data-branch="72">\n'
                   '<div class="lc-branch-select__branch--hidden-region">\n'
                   '<div class="block block-layout-builder '
                   'block-field-blocktaxonomy-termlc-library-branchfield-lc-branch-hours">\n'
                   '<div class="field field-container '
                   'field--name-field-lc-branch-hours field--type-office-hours '
                   'field--label-hidden field-items">\n'
                   '<div class="field-item"><div class="office-hours office-hours '
                   'office-hours-status--closed"><div '
                   'class="office-hours__item"><span '
                   'class="office-hours__item-slots">10:00am-8:00pm</span><span><br/></span></div></div></div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="lc-branch-selector-content-row">\n'
                   '<div class="lc-branch-selector-content-col">\n'
                   '<div>\n'
                   '<div class="block block-layout-builder '
                   'block-field-blocktaxonomy-termlc-library-branchfield-lc-address">\n'
                   '<div class="field field-container field--name-field-lc-address '
                   'field--type-address field--label-hidden field-item"><p '
                   'class="address" translate="no"><span class="address-line1">137 '
                   'Old Ridgefield Rd</span><br/>\n'
                   '<span class="locality">Wilton</span>, <span '
                   'class="administrative-area">CT</span> <span '
                   'class="postal-code">06897</span><br/>\n'
                   '<span class="country">United States</span></p></div>\n'
                   '</div>\n'
                   '<div class="block block-layout-builder '
                   'block-extra-field-blocktaxonomy-termlc-library-branchgoogle-maps-link">\n'
                   '<a '
                   'href="https://www.google.com/maps?q=137+Old+Ridgefield+Rd%2C+Wilton%2C+CT+06897%2C+United+States" '
                   'target="_blank">View on Google Maps</a>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="lc-branch-selector-content-col">\n'
                   '<div>\n'
                   '<div class="block block-layout-builder '
                   'block-field-blocktaxonomy-termlc-library-branchfield-lc-branch-hours">\n'
                   '<div class="field field-container '
                   'field--name-field-lc-branch-hours field--type-office-hours '
                   'field--label-hidden field-items">\n'
                   '<div class="field-item"><div class="office-hours office-hours '
                   'office-hours-status--closed"><div '
                   'class="office-hours__item"><span '
                   'class="office-hours__item-label">Sun: </span><span '
                   'class="office-hours__item-comments">Closed</span><span><br/></span></div><div '
                   'class="office-hours__item"><span '
                   'class="office-hours__item-label">Mon-Thu: </span><span '
                   'class="office-hours__item-slots">10:00am-8:00pm</span><span><br/></span></div><div '
                   'class="office-hours__item"><span '
                   'class="office-hours__item-label">Fri: </span><span '
                   'class="office-hours__item-slots">10:00am-6:00pm</span><span><br/></span></div><div '
                   'class="office-hours__item"><span '
                   'class="office-hours__item-label">Sat: </span><span '
                   'class="office-hours__item-slots">10:00am-5:00pm</span><span><br/></span></div></div></div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div>\n'
                   '<div class="container main-container">\n'
                   '<a class="visually-hidden focusable skip-link" '
                   'href="#block-calendar-theme-main-menu-skip-link">\n'
                   '    Skip navigation\n'
                   '  </a>\n'
                   '<nav aria-labelledby="block-calendar-theme-main-menu-heading" '
                   'class="navbar navbar-expand-lg" '
                   'id="block-calendar-theme-main-menu" role="navigation">\n'
                   '<div class="container-fluid px-lg-0">\n'
                   '<h2 class="visually-hidden" '
                   'id="block-calendar-theme-main-menu-heading">Main '
                   'navigation</h2>\n'
                   '<button aria-controls="block-calendar-theme-main-menu-collapse" '
                   'aria-expanded="false" class="navbar-toggler" '
                   'data-bs-target="#block-calendar-theme-main-menu-collapse" '
                   'data-bs-toggle="collapse" type="button">\n'
                   '<i class="fas fa-bars"></i>\n'
                   '<span class="visually-hidden">\n'
                   '          Toggle        </span>\n'
                   '\n'
                   '        Main Menu      </button>\n'
                   '<div class="collapse navbar-collapse mt-2 mt-lg-0" '
                   'id="block-calendar-theme-main-menu-collapse">\n'
                   '<ul class="nav navbar-nav">\n'
                   '<li class="nav-item">\n'
                   '<a class="nav-link" '
                   'href="https://www.wiltonlibrary.org/">Library Website</a>\n'
                   '</li>\n'
                   '<li class="nav-item">\n'
                   '<a class="nav-link" data-drupal-link-system-path="events" '
                   'href="/events">Events Calendar</a>\n'
                   '</li>\n'
                   '<li class="nav-item">\n'
                   '<a class="nav-link" '
                   'href="https://www.wiltonlibrary.org/studyrooms">Study Rooms</a>\n'
                   '</li>\n'
                   '<li class="nav-item">\n'
                   '<a class="nav-link" data-drupal-link-system-path="node/1" '
                   'href="/reserve-room">Reserve a Room</a>\n'
                   '</li>\n'
                   '<li class="nav-item">\n'
                   '<a class="nav-link" '
                   'href="https://wilton.librarycalendar.com/reserve-room/bloomberg-terminal">Bloomberg '
                   'Terminal</a>\n'
                   '</li>\n'
                   '</ul>\n'
                   '</div>\n'
                   '</div>\n'
                   '</nav>\n'
                   '<a id="block-calendar-theme-main-menu-skip-link" '
                   'tabindex="-1"></a>\n'
                   '</div>\n'
                   '</div>\n'
                   '</header>\n'
                   '<main class="content-container container main-container" '
                   'role="main">\n'
                   '<a id="main-content" tabindex="-1"></a>\n'
                   '<div>\n'
                   '<div class="hidden" data-drupal-messages-fallback=""></div>\n'
                   '<div class="block block-system block-system-breadcrumb-block" '
                   'id="block-calendar-theme-breadcrumbs">\n'
                   '<nav aria-label="Breadcrumb" role="navigation">\n'
                   '<ol class="breadcrumb">\n'
                   '<li class="breadcrumb-item">\n'
                   '<a href="/">Home</a>\n'
                   '</li>\n'
                   '</ol>\n'
                   '</nav>\n'
                   '</div>\n'
                   '<div class="block block-core block-page-title-block" '
                   'id="block-calendar-theme-page-title">\n'
                   '<h1 class="mb-4">\n'
                   '<span>Summer STEM Explorers : Hands-On Science at the '
                   'Library</span>\n'
                   '</h1>\n'
                   '</div>\n'
                   '<div class="block block-system block-system-main-block" '
                   'id="block-calendar-theme-content">\n'
                   '<article class="lc-event lc-event--full node node--type-lc-event '
                   'node--promoted node--view-mode-full">\n'
                   '<div class="lc-event__menu-tasks"><div class="lc-menu-tasks"> '
                   '<h2 class="visually-hidden">Primary tabs</h2>\n'
                   '<ul class="list-inline"><li class="list-inline-item"><a '
                   'class="button button--primary btn-sm" '
                   'data-drupal-link-system-path="events/upcoming" '
                   'href="/events/upcoming">Upcoming</a></li>\n'
                   '<li class="list-inline-item"><a class="button button--primary '
                   'btn-sm" data-drupal-link-system-path="events/list" '
                   'href="/events/list">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'
                   "                  Children's Program 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'
                   '      4:00pm–5:00pm\n'
                   '    </div>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="lc-repeating-dates lc-event-section">\n'
                   '\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="lc-print-column">\n'
                   '<div class="lc-event-featured-image lc-event-section">\n'
                   '<div class="field field-container field--name-field-lc-image '
                   'field--type-image field--label-hidden field-item"><a '
                   'class="use-ajax" data-dialog-options=\'{"width":"auto"}\' '
                   'data-dialog-type="modal" '
                   'href="/library-calendar/image-dialog/896/lc_featured_image?alternative_text=STEM%20Explorers"><img '
                   'alt="STEM Explorers" class="img-fluid" height="270" '
                   'src="https://wilton.librarycalendar.com/sites/default/files/styles/large/public/2025-08/STEM%20Explorers.jpg" '
                   'width="350"/>\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/52483/add_to_calendar" '
                   'title="Add To My Calendar">\n'
                   '<span class="lc-event-actions__icon '
                   'lc-event-actions__icon--calendar"></span>\n'
                   '<span class="lc-event-actions__text">Add To My Calendar</span>\n'
                   '</a>\n'
                   '</li>\n'
                   '<li class="lc-event-actions__item">\n'
                   '<a class="button button--primary lc-event-action-link" '
                   'data-toggle="tooltip" href="#" onclick="window.print()" '
                   'title="Print this event">\n'
                   '<span class="lc-event-actions__icon '
                   'lc-event-actions__icon--print"></span>\n'
                   '<span class="lc-event-actions__text">Print</span>\n'
                   '</a>\n'
                   '</li>\n'
                   '<li class="lc-event-actions__item">\n'
                   '<a class="button button--primary lc-event-action-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&amp;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>'}
    • 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&amp;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&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/wilton_library/cfcff6c595fc11f18d790050565fa5d9.log

  • sourcelog
    last update time2026-08-12 05:21:32
    last update timestamp1786504892
    downloader / request bytes61789
    downloader / request count202
    downloader / request method count / GET202
    downloader / response bytes1712853
    downloader / response count202
    downloader / response status count / 200202
    elapsed time seconds39.298877
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 8, 12, 3, 21, 32, 238026, tzinfo=datetime.timezone.utc)
    httpcompression / response bytes6772308
    httpcompression / response count202
    item scraped count201
    items per minute309.2307692307692
    log count / DEBUG805
    log count / ERROR11
    log count / INFO3
    memusage / max99540992
    memusage / startup99540992
    request depth max1
    response received count202
    responses per minute310.7692307692308
    scheduler / dequeued202
    scheduler / dequeued / memory202
    scheduler / enqueued202
    scheduler / enqueued / memory202
    start timedatetime.datetime(2026, 8, 12, 3, 20, 52, 939149, tzinfo=datetime.timezone.utc)