• 'pip install logparser' on host '127.0.0.1:6800' and run command 'logparser'. Or wait until LogParser parses the log.

PROJECT (event_scrapers), SPIDER (west_port_library)

  • Log analysis
  • Log categorization
  • Progress visualization
  • View log
  • Crawler.stats
  • projectevent_scrapers
    spiderwest_port_library
    job6f911e87699f11f18b560050565fa5d9
    first_log_time2026-06-16 18:21:33
    latest_log_time2026-06-16 18:43:11
    runtime0:21:38
    crawled_pages 404
    scraped_items 255
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count18
    log_warning_count1
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_item{'event_url': 'https://westportlibrary.org/event/chess-club-for-adults-4-2022-03-23-2/2026-08-19/', 'platform': 'West Port Library', 'platform_hash': '98fc034cf02effea491f1428a26aefbf', 'raw_body': '<div class="tribe-events-single" id="tribe-events-content">\n' '<p class="tribe-events-back">\n' '<a href="https://westportlibrary.org/calendar/"> « All ' 'Events</a>\n' '</p>\n' '<!-- Notices -->\n' '<h1 class="tribe-events-single-event-title">Chess Club for ' 'Adults</h1>\n' '<div class="tribe-events-schedule tribe-clearfix">\n' '<div><span class="tribe-event-date-start">Wed, August 19 @ 6:30 ' 'pm</span> - <span class="tribe-event-time">9:00 pm</span> <span ' 'class="timezone"> EST </span></div><div ' 'class="tribe-events-series-relationship-single-marker ' 'tribe-common ' 'tribe-events-series-relationship-single-marker--pill">\n' '<span ' 'class="tribe-events-series-relationship-single-marker__icon">\n' '<svg aria-hidden="true" class="tribe-common-c-svgicon ' 'tribe-common-c-svgicon--series ' 'tribe-events-series-relationship-single-marker__icon-svg" ' 'fill="none" height="12" viewbox="0 0 14 12" width="14" ' 'xmlns="http://www.w3.org/2000/svg">\n' '<rect height="7" width="9" x="0.5" y="4.5"></rect>\n' '<path d="M2 2.5H11.5V10"></path>\n' '<path d="M4 0.5H13.5V8"></path>\n' '</svg>\n' '</span>\n' '<span ' 'class="tribe-events-series-relationship-single-marker__prefix">\n' '\t\tEvent Series\t</span>\n' '<a class="tribe-events-series-relationship-single-marker__title ' 'tribe-common-cta--alt" ' 'href="https://westportlibrary.org/series/chess-club-for-adults/">\n' '<span class="tec_series_marker__title">\n' '\t\t\t(See All)\t\t</span>\n' '</a>\n' '</div>\n' '</div>\n' '<!-- Event header -->\n' '<div data-title="Chess Club for Adults | The Westport Library" ' 'data-viewtitle="Chess Club for Adults" ' 'id="tribe-events-header">\n' '<!-- Navigation -->\n' '<nav aria-label="Event Navigation" ' 'class="tribe-events-nav-pagination">\n' '<ul class="tribe-events-sub-nav">\n' '<li class="tribe-events-nav-previous"><a ' 'href="https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern-2/2026-08-19/"><span>«</span> ' 'Writing Sprints with Tessa Smith McGovern</a></li>\n' '<li class="tribe-events-nav-next"><a ' 'href="https://westportlibrary.org/event/kic-lighthouse-teen-meetup/2026-08-20/">KIC ' 'Lighthouse Teen Meetup <span>»</span></a></li>\n' '</ul>\n' '<!-- .tribe-events-sub-nav -->\n' '</nav>\n' '</div>\n' '<!-- #tribe-events-header -->\n' '<div class="post-10056256 tribe_events type-tribe_events ' 'status-publish has-post-thumbnail hentry tribe_events_cat-adults ' 'tribe_events_cat-lifestyle cat_adults cat_lifestyle ' 'tribe-recurring-event tribe-recurring-event-parent" ' 'id="post-10056256">\n' '<!-- Event featured image, but exclude link -->\n' '<div class="tribe-events-event-image"><img alt="" ' 'class="attachment-full size-full wp-post-image perfmatters-lazy" ' 'data-sizes="(max-width: 4256px) 100vw, 4256px" ' 'data-src="https://westportlibrary.org/wp-content/uploads/2019/05/chess-1.jpg" ' 'data-srcset="https://westportlibrary.org/wp-content/uploads/2019/05/chess-1.jpg ' '4256w, ' 'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-300x200.jpg ' '300w, ' 'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-768x511.jpg ' '768w, ' 'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-1500x998.jpg ' '1500w" height="2832" ' 'src="data:image/svg+xml,%3Csvg%20xmlns=\'http://www.w3.org/2000/svg\'%20width=\'4256\'%20height=\'2832\'%20viewBox=\'0%200%204256%202832\'%3E%3C/svg%3E" ' 'width="4256"/></div>\n' '<!-- Event content -->\n' '<div class="tribe-events-single-event-description ' 'tribe-events-content">\n' '<p>Drop by for a chess game on Wednesdays! There will be both ' 'open play and instruction for adults and high school students ' 'who know how to play the game. For more information, please ' 'contact the group contact, Rodney Garcia at <a ' 'href="/cdn-cgi/l/email-protection#4d3f2a3d3f22297c7b0d2a202c2421632e2220"><span ' 'class="__cf_email__" ' 'data-cfemail="0a786d7a78656e3b3c4a6d676b636624696567">[email\xa0' 'protected]</span></a>.</p>\n' '<p><a href="https://westportlibrary.libguides.com/?b=g&amp;d=r" ' 'rel="noopener" target="_blank"><img alt="" class="alignnone ' 'size-full wp-image-26325 perfmatters-lazy" ' 'data-src="https://westportlibrary.org/wp-content/uploads/2020/06/Resource-guide-button-1.png" ' 'decoding="async" height="100" ' 'src="data:image/svg+xml,%3Csvg%20xmlns=\'http://www.w3.org/2000/svg\'%20width=\'293\'%20height=\'100\'%20viewBox=\'0%200%20293%20100\'%3E%3C/svg%3E" ' 'width="293"/></a></p>\n' '<p><a href="https://westportlibrary.libguides.com/needahobby/" ' 'rel="noopener" target="_blank"><em><strong>Need a ' 'Hobby?</strong></em></a></p>\n' '<p><a href="https://westportlibrary.libguides.com/SportsFix" ' 'rel="noopener" target="_blank"><em><strong>Sports! Sports! ' 'Sports!</strong></em></a></p>\n' '<p><a ' 'href="https://westportlibrary.libguides.com/c.php?g=1110722&amp;p=8097414" ' 'rel="noopener" target="_blank"><em><strong>Dungeons &amp; ' 'Dragons</strong></em></a></p>\n' '</div>\n' '<!-- .tribe-events-single-event-description -->\n' '<!-- Event meta -->\n' '<div class="tribe-events-single-section tribe-events-event-meta ' 'primary tribe-clearfix">\n' '<div class="tribe-events-meta-group ' 'tribe-events-meta-group-details">\n' '<h2 class="tribe-events-single-section-title"> Details </h2>\n' '<ul class="tribe-events-meta-list">\n' '<li class="tribe-events-meta-item">\n' '<span class="tribe-events-start-date-label ' 'tribe-events-meta-label">Date:</span>\n' '<span class="tribe-events-meta-value">\n' '<abbr class="tribe-events-abbr tribe-events-start-date published ' 'dtstart" title="2026-08-19"> Wed, August 19 </abbr>\n' '</span>\n' '</li>\n' '<li class="tribe-events-meta-item">\n' '<span class="tribe-events-start-time-label ' 'tribe-events-meta-label">Time:</span>\n' '<span class="tribe-events-meta-value">\n' '<div class="tribe-events-abbr tribe-events-start-time published ' 'dtstart" title="2026-08-19">\n' '<div class="tribe-recurring-event-time">6:30 pm - 9:00 pm</div> ' '<span class="tribe-events-abbr tribe-events-time-zone ' 'published">EST</span>\n' '</div>\n' '</span>\n' '</li>\n' '<dt class="tec-events-pro-series-meta-detail--label">Series: ' '</dt>\n' '<dd class="tec-events-pro-series-meta-detail--link">\n' '<a ' 'href="https://westportlibrary.org/series/chess-club-for-adults/" ' 'title="Chess Club for Adults">\n' '\t\t\t\tChess Club for Adults\t\t\t</a>\n' '</dd>\n' '<li class="tribe-events-meta-item"><span ' 'class="tribe-events-event-categories-label ' 'tribe-events-meta-label">Event Categories:</span> <span ' 'class="tribe-events-event-categories tribe-events-meta-value"><a ' 'href="https://westportlibrary.org/calendar/category/adults/" ' 'rel="tag">Adults</a>, <a ' 'href="https://westportlibrary.org/calendar/category/lifestyle/" ' 'rel="tag">Lifestyle</a></span></li>\n' '</ul>\n' '</div>\n' '<div class="tribe-events-meta-group ' 'tribe-events-meta-group-venue">\n' '<h2 class="tribe-events-single-section-title"> Venue </h2>\n' '<ul class="tribe-events-meta-list">\n' '<li class="tribe-events-meta-item tribe-venue"> <a ' 'href="https://westportlibrary.org/venue/room-212-the-westport-library/">Room ' '212, The Westport Library</a> </li>\n' '<li class="tribe-events-meta-item tribe-venue-location">\n' '<address class="tribe-events-address">\n' '<span class="tribe-address">\n' '<span class="tribe-street-address">20 Jesup Road</span>\n' '<br/>\n' '<span class="tribe-locality">Westport</span><span ' 'class="tribe-delimiter">,</span>\n' '<abbr class="tribe-region tribe-events-abbr" ' 'title="Connecticut">CT</abbr>\n' '<span class="tribe-postal-code">06880</span>\n' '<span class="tribe-country-name">United States</span>\n' '</span>\n' '</address>\n' '</li>\n' '</ul>\n' '</div>\n' '</div>\n' '<h2 class="tribe-events-related-events-title">\n' '\tRelated Events</h2>\n' '\n' '</div> <!-- #post-x -->\n' '<!-- Event footer -->\n' '<div id="tribe-events-footer">\n' '<!-- Navigation -->\n' '<nav aria-label="Event Navigation" ' 'class="tribe-events-nav-pagination">\n' '<ul class="tribe-events-sub-nav">\n' '<li class="tribe-events-nav-previous"><a ' 'href="https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern-2/2026-08-19/"><span>«</span> ' 'Writing Sprints with Tessa Smith McGovern</a></li>\n' '<li class="tribe-events-nav-next"><a ' 'href="https://westportlibrary.org/event/kic-lighthouse-teen-meetup/2026-08-20/">KIC ' 'Lighthouse Teen Meetup <span>»</span></a></li>\n' '</ul>\n' '<!-- .tribe-events-sub-nav -->\n' '</nav>\n' '</div>\n' '<!-- #tribe-events-footer -->\n' '</div>'}
    • WARNING+

    • error_logs
      18 in total

      2026-06-16 18:24:21 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:24:21 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:25:01 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:40 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:40 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:41 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:48 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:48 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:53 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:53 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:27:58 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:02 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:03 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:05 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:11 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:11 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:12 [west_port_library] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-06-16 18:28:20 [west_port_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>
      
    • warning_logs
      1 in total

      2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.process_item)
      
      2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.west_port_library.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-06-16 18:23:33 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://westportlibrary.org/calendar/list/page/2/>, 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.

      INFO

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      d58ac1cebdec7445
    • latest_crawl

      2026-06-16 18:43:11 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/149/> (referer: https://westportlibrary.org/) ['zyte-api']
    • latest_stat

      2026-06-16 18:42:34 [scrapy.extensions.logstats] INFO: Crawled 400 pages (at 6 pages/min), scraped 255 items (at 0 items/min)
    • latest_scrape

      2026-06-16 18:29:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://westportlibrary.org/event/chess-club-for-adults-4-2022-03-23-2/2026-08-19/>
    • latest_item

      {'event_url': 'https://westportlibrary.org/event/chess-club-for-adults-4-2022-03-23-2/2026-08-19/',
       'platform': 'West Port Library',
       'platform_hash': '98fc034cf02effea491f1428a26aefbf',
       'raw_body': '<div class="tribe-events-single" id="tribe-events-content">\n'
                   '<p class="tribe-events-back">\n'
                   '<a href="https://westportlibrary.org/calendar/"> « All '
                   'Events</a>\n'
                   '</p>\n'
                   '<!-- Notices -->\n'
                   '<h1 class="tribe-events-single-event-title">Chess Club for '
                   'Adults</h1>\n'
                   '<div class="tribe-events-schedule tribe-clearfix">\n'
                   '<div><span class="tribe-event-date-start">Wed, August 19 @ 6:30 '
                   'pm</span> - <span class="tribe-event-time">9:00 pm</span> <span '
                   'class="timezone"> EST </span></div><div '
                   'class="tribe-events-series-relationship-single-marker '
                   'tribe-common '
                   'tribe-events-series-relationship-single-marker--pill">\n'
                   '<span '
                   'class="tribe-events-series-relationship-single-marker__icon">\n'
                   '<svg aria-hidden="true" class="tribe-common-c-svgicon '
                   'tribe-common-c-svgicon--series '
                   'tribe-events-series-relationship-single-marker__icon-svg" '
                   'fill="none" height="12" viewbox="0 0 14 12" width="14" '
                   'xmlns="http://www.w3.org/2000/svg">\n'
                   '<rect height="7" width="9" x="0.5" y="4.5"></rect>\n'
                   '<path d="M2 2.5H11.5V10"></path>\n'
                   '<path d="M4 0.5H13.5V8"></path>\n'
                   '</svg>\n'
                   '</span>\n'
                   '<span '
                   'class="tribe-events-series-relationship-single-marker__prefix">\n'
                   '\t\tEvent Series\t</span>\n'
                   '<a class="tribe-events-series-relationship-single-marker__title '
                   'tribe-common-cta--alt" '
                   'href="https://westportlibrary.org/series/chess-club-for-adults/">\n'
                   '<span class="tec_series_marker__title">\n'
                   '\t\t\t(See All)\t\t</span>\n'
                   '</a>\n'
                   '</div>\n'
                   '</div>\n'
                   '<!-- Event header -->\n'
                   '<div data-title="Chess Club for Adults | The Westport Library" '
                   'data-viewtitle="Chess Club for Adults" '
                   'id="tribe-events-header">\n'
                   '<!-- Navigation -->\n'
                   '<nav aria-label="Event Navigation" '
                   'class="tribe-events-nav-pagination">\n'
                   '<ul class="tribe-events-sub-nav">\n'
                   '<li class="tribe-events-nav-previous"><a '
                   'href="https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern-2/2026-08-19/"><span>«</span> '
                   'Writing Sprints with Tessa Smith McGovern</a></li>\n'
                   '<li class="tribe-events-nav-next"><a '
                   'href="https://westportlibrary.org/event/kic-lighthouse-teen-meetup/2026-08-20/">KIC '
                   'Lighthouse Teen Meetup <span>»</span></a></li>\n'
                   '</ul>\n'
                   '<!-- .tribe-events-sub-nav -->\n'
                   '</nav>\n'
                   '</div>\n'
                   '<!-- #tribe-events-header -->\n'
                   '<div class="post-10056256 tribe_events type-tribe_events '
                   'status-publish has-post-thumbnail hentry tribe_events_cat-adults '
                   'tribe_events_cat-lifestyle cat_adults cat_lifestyle '
                   'tribe-recurring-event tribe-recurring-event-parent" '
                   'id="post-10056256">\n'
                   '<!-- Event featured image, but exclude link -->\n'
                   '<div class="tribe-events-event-image"><img alt="" '
                   'class="attachment-full size-full wp-post-image perfmatters-lazy" '
                   'data-sizes="(max-width: 4256px) 100vw, 4256px" '
                   'data-src="https://westportlibrary.org/wp-content/uploads/2019/05/chess-1.jpg" '
                   'data-srcset="https://westportlibrary.org/wp-content/uploads/2019/05/chess-1.jpg '
                   '4256w, '
                   'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-300x200.jpg '
                   '300w, '
                   'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-768x511.jpg '
                   '768w, '
                   'https://westportlibrary.org/wp-content/uploads/2019/05/chess-1-1500x998.jpg '
                   '1500w" height="2832" '
                   'src="data:image/svg+xml,%3Csvg%20xmlns=\'http://www.w3.org/2000/svg\'%20width=\'4256\'%20height=\'2832\'%20viewBox=\'0%200%204256%202832\'%3E%3C/svg%3E" '
                   'width="4256"/></div>\n'
                   '<!-- Event content -->\n'
                   '<div class="tribe-events-single-event-description '
                   'tribe-events-content">\n'
                   '<p>Drop by for a chess game on Wednesdays! There will be both '
                   'open play and instruction for adults and high school students '
                   'who know how to play the game. For more information, please '
                   'contact the group contact, Rodney Garcia at <a '
                   'href="/cdn-cgi/l/email-protection#4d3f2a3d3f22297c7b0d2a202c2421632e2220"><span '
                   'class="__cf_email__" '
                   'data-cfemail="0a786d7a78656e3b3c4a6d676b636624696567">[email\xa0'
                   'protected]</span></a>.</p>\n'
                   '<p><a href="https://westportlibrary.libguides.com/?b=g&amp;d=r" '
                   'rel="noopener" target="_blank"><img alt="" class="alignnone '
                   'size-full wp-image-26325 perfmatters-lazy" '
                   'data-src="https://westportlibrary.org/wp-content/uploads/2020/06/Resource-guide-button-1.png" '
                   'decoding="async" height="100" '
                   'src="data:image/svg+xml,%3Csvg%20xmlns=\'http://www.w3.org/2000/svg\'%20width=\'293\'%20height=\'100\'%20viewBox=\'0%200%20293%20100\'%3E%3C/svg%3E" '
                   'width="293"/></a></p>\n'
                   '<p><a href="https://westportlibrary.libguides.com/needahobby/" '
                   'rel="noopener" target="_blank"><em><strong>Need a '
                   'Hobby?</strong></em></a></p>\n'
                   '<p><a href="https://westportlibrary.libguides.com/SportsFix" '
                   'rel="noopener" target="_blank"><em><strong>Sports! Sports! '
                   'Sports!</strong></em></a></p>\n'
                   '<p><a '
                   'href="https://westportlibrary.libguides.com/c.php?g=1110722&amp;p=8097414" '
                   'rel="noopener" target="_blank"><em><strong>Dungeons &amp; '
                   'Dragons</strong></em></a></p>\n'
                   '</div>\n'
                   '<!-- .tribe-events-single-event-description -->\n'
                   '<!-- Event meta -->\n'
                   '<div class="tribe-events-single-section tribe-events-event-meta '
                   'primary tribe-clearfix">\n'
                   '<div class="tribe-events-meta-group '
                   'tribe-events-meta-group-details">\n'
                   '<h2 class="tribe-events-single-section-title"> Details </h2>\n'
                   '<ul class="tribe-events-meta-list">\n'
                   '<li class="tribe-events-meta-item">\n'
                   '<span class="tribe-events-start-date-label '
                   'tribe-events-meta-label">Date:</span>\n'
                   '<span class="tribe-events-meta-value">\n'
                   '<abbr class="tribe-events-abbr tribe-events-start-date published '
                   'dtstart" title="2026-08-19"> Wed, August 19 </abbr>\n'
                   '</span>\n'
                   '</li>\n'
                   '<li class="tribe-events-meta-item">\n'
                   '<span class="tribe-events-start-time-label '
                   'tribe-events-meta-label">Time:</span>\n'
                   '<span class="tribe-events-meta-value">\n'
                   '<div class="tribe-events-abbr tribe-events-start-time published '
                   'dtstart" title="2026-08-19">\n'
                   '<div class="tribe-recurring-event-time">6:30 pm - 9:00 pm</div> '
                   '<span class="tribe-events-abbr tribe-events-time-zone '
                   'published">EST</span>\n'
                   '</div>\n'
                   '</span>\n'
                   '</li>\n'
                   '<dt class="tec-events-pro-series-meta-detail--label">Series: '
                   '</dt>\n'
                   '<dd class="tec-events-pro-series-meta-detail--link">\n'
                   '<a '
                   'href="https://westportlibrary.org/series/chess-club-for-adults/" '
                   'title="Chess Club for Adults">\n'
                   '\t\t\t\tChess Club for Adults\t\t\t</a>\n'
                   '</dd>\n'
                   '<li class="tribe-events-meta-item"><span '
                   'class="tribe-events-event-categories-label '
                   'tribe-events-meta-label">Event Categories:</span> <span '
                   'class="tribe-events-event-categories tribe-events-meta-value"><a '
                   'href="https://westportlibrary.org/calendar/category/adults/" '
                   'rel="tag">Adults</a>, <a '
                   'href="https://westportlibrary.org/calendar/category/lifestyle/" '
                   'rel="tag">Lifestyle</a></span></li>\n'
                   '</ul>\n'
                   '</div>\n'
                   '<div class="tribe-events-meta-group '
                   'tribe-events-meta-group-venue">\n'
                   '<h2 class="tribe-events-single-section-title"> Venue </h2>\n'
                   '<ul class="tribe-events-meta-list">\n'
                   '<li class="tribe-events-meta-item tribe-venue"> <a '
                   'href="https://westportlibrary.org/venue/room-212-the-westport-library/">Room '
                   '212, The Westport Library</a> </li>\n'
                   '<li class="tribe-events-meta-item tribe-venue-location">\n'
                   '<address class="tribe-events-address">\n'
                   '<span class="tribe-address">\n'
                   '<span class="tribe-street-address">20 Jesup Road</span>\n'
                   '<br/>\n'
                   '<span class="tribe-locality">Westport</span><span '
                   'class="tribe-delimiter">,</span>\n'
                   '<abbr class="tribe-region tribe-events-abbr" '
                   'title="Connecticut">CT</abbr>\n'
                   '<span class="tribe-postal-code">06880</span>\n'
                   '<span class="tribe-country-name">United States</span>\n'
                   '</span>\n'
                   '</address>\n'
                   '</li>\n'
                   '</ul>\n'
                   '</div>\n'
                   '</div>\n'
                   '<h2 class="tribe-events-related-events-title">\n'
                   '\tRelated Events</h2>\n'
                   '\n'
                   '</div> <!-- #post-x -->\n'
                   '<!-- Event footer -->\n'
                   '<div id="tribe-events-footer">\n'
                   '<!-- Navigation -->\n'
                   '<nav aria-label="Event Navigation" '
                   'class="tribe-events-nav-pagination">\n'
                   '<ul class="tribe-events-sub-nav">\n'
                   '<li class="tribe-events-nav-previous"><a '
                   'href="https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern-2/2026-08-19/"><span>«</span> '
                   'Writing Sprints with Tessa Smith McGovern</a></li>\n'
                   '<li class="tribe-events-nav-next"><a '
                   'href="https://westportlibrary.org/event/kic-lighthouse-teen-meetup/2026-08-20/">KIC '
                   'Lighthouse Teen Meetup <span>»</span></a></li>\n'
                   '</ul>\n'
                   '<!-- .tribe-events-sub-nav -->\n'
                   '</nav>\n'
                   '</div>\n'
                   '<!-- #tribe-events-footer -->\n'
                   '</div>'}
    • Head

      2026-06-16 18:21:33 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-06-16 18:21:33 [scrapy.utils.log] INFO: Versions:
      {'lxml': '6.0.2',
       'libxml2': '2.14.6',
       'cssselect': '1.3.0',
       'parsel': '1.10.0',
       'w3lib': '2.0.0',
       'Twisted': '25.5.0',
       'Python': '3.12.3 (main, Mar 23 2026, 19:04:32) [GCC 13.3.0]',
       'pyOpenSSL': '25.3.0 (OpenSSL 3.5.4 30 Sep 2025)',
       'cryptography': '46.0.3',
       'Platform': 'Linux-6.8.0-90-generic-x86_64-with-glibc2.39'}
      2026-06-16 18:21:33 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-06-16 18:21:33 [asyncio] DEBUG: Using selector: EpollSelector
      2026-06-16 18:21:33 [scrapy.addons] INFO: Enabled addons:
      []
      2026-06-16 18:21:34 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-06-16 18:21:34 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-06-16 18:21:34 [scrapy.extensions.telnet] INFO: Telnet Password: d58ac1cebdec7445
      2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled extensions:
      ['scrapy.extensions.corestats.CoreStats',
       'scrapy.extensions.logcount.LogCount',
       'scrapy.extensions.telnet.TelnetConsole',
       'scrapy.extensions.memusage.MemoryUsage',
       'scrapy.extensions.feedexport.FeedExporter',
       'scrapy.extensions.logstats.LogStats']
      2026-06-16 18:21:34 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x7c7eb9b34540>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/west_port_library/6f911e87699f11f18b560050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-06-16 18:21:34 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 18:21:34 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled downloader middlewares:
      ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware',
       'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
       'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
       'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
       'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
       'scrapy.downloadermiddlewares.retry.RetryMiddleware',
       'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
       'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
       'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
       'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
       'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
       'scrapy.downloadermiddlewares.stats.DownloaderStats']
      2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled spider middlewares:
      ['scrapy.spidermiddlewares.start.StartSpiderMiddleware',
       'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
       'scrapy.spidermiddlewares.referer.RefererMiddleware',
       'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
       'scrapy.spidermiddlewares.depth.DepthMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPIRefererSpiderMiddleware']
      2026-06-16 18:21:34 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.process_item)
      
      2026-06-16 18:21:34 [scrapy.core.engine] INFO: Spider opened
      2026-06-16 18:21:34 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.west_port_library.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-06-16 18:21:34 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 18:21:34 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-06-16 18:21:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:22:34 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 18:23:08 [zyte_api._retry] DEBUG: Finished call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request' after 93.6(s), this was the 1st time calling it.
      2026-06-16 18:23:08 [zyte_api._retry] DEBUG: Retrying zyte_api._async.AsyncZyteAPI.get.<locals>.request in 4.5 seconds as it raised RequestError: RequestError: 520, message=, headers=<CIMultiDictProxy('Date': 'Tue, 16 Jun 2026 16:23:08 GMT', 'Content-Type': 'application/problem+json', 'Content-Length': '214', 'Connection': 'close', 'Retry-After': '60', 'Request-Id': 'b481bce4615b24227c67f964d8847775', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'Access-Control-Allow-Credentials': 'true', 'Access-Control-Expose-Headers': '*, X-Project-Key', 'Access-Control-Allow-Methods': 'GET, PUT, POST, DELETE, PATCH, OPTIONS', 'Access-Control-Allow-Headers': 'DNT, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Range, Authorization, X-Project-Key', 'Access-Control-Max-Age': '1728000')>, body=b'{"type":"/download/temporary-error","title":"Website Ban","status":520,"detail":"Zyte API could not get a ban-free response in a reasonable time. See https://docs.zyte.com/zyte-api/usage/errors.html#ban-responses"}', request_id=b481bce4615b24227c67f964d8847775.
      2026-06-16 18:23:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 2nd time calling it.
      2026-06-16 18:23:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:23:33 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://westportlibrary.org/calendar/list/page/2/>, 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-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:23:34 [scrapy.extensions.logstats] INFO: Crawled 1 pages (at 1 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 18:23:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:23:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/event/writing-sprints-with-tessa-smith-mcgovern/2026-06-16/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:23:37 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 18:23:38 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 10171
      2026-06-16 18:23:38 [scrapy.core.scraper] DEBUG: Scraped from <200 https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/>
      {'event_url': 'https://westportlibrary.org/event/language-conversation-group-italian/2026-06-17/',
       'platform': 'West Port Library',
    • Tail

      2026-06-16 18:34:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/78/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:30 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:34 [scrapy.extensions.logstats] INFO: Crawled 333 pages (at 13 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:34:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/79/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/80/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/81/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:42 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:46 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/82/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:46 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/83/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:51 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:34:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/84/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:34:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/85/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/86/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/87/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:34 [scrapy.extensions.logstats] INFO: Crawled 342 pages (at 9 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:35:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/88/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:37 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/89/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/90/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:48 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:53 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/91/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:53 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:35:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/92/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:35:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/93/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:01 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/94/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:05 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/95/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:09 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/96/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:12 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:18 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/97/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:18 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/98/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:22 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:27 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/99/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:27 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/100/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:31 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:34 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/101/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:34 [scrapy.extensions.logstats] INFO: Crawled 356 pages (at 14 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:36:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:36:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/102/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:36:38 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:20 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/103/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:20 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/104/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:30 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/105/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:34 [scrapy.extensions.logstats] INFO: Crawled 360 pages (at 4 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:37:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/106/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/107/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:42 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:46 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/108/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:47 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:37:50 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/109/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:37:50 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/110/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:14 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:23 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/111/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:23 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/112/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:28 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/113/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:34 [scrapy.extensions.logstats] INFO: Crawled 368 pages (at 8 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:38:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/114/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:37 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:40 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/115/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/116/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:45 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:38:57 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/117/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:38:57 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/118/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:09 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/119/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:14 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/120/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:32 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/121/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:34 [scrapy.extensions.logstats] INFO: Crawled 376 pages (at 8 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:39:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/122/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:36 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/123/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:39 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:39:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/124/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:39:52 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/125/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:15 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:29 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/126/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:33 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/127/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:34 [scrapy.extensions.logstats] INFO: Crawled 382 pages (at 6 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:40:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/128/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:38 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/129/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:41 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:45 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/130/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:45 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/131/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:49 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/132/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:52 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:40:56 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/133/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:40:56 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:12 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/134/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:13 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:16 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/135/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:16 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:20 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/136/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:20 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:24 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/137/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:24 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:27 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/138/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:28 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:31 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/139/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:32 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:34 [scrapy.extensions.logstats] INFO: Crawled 394 pages (at 12 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:41:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/140/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:41:58 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/141/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:41:58 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:02 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/142/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:42:02 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:15 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/143/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:42:15 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:19 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/144/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:42:19 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/145/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:42:22 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:34 [scrapy.extensions.logstats] INFO: Crawled 400 pages (at 6 pages/min), scraped 255 items (at 0 items/min)
      2026-06-16 18:42:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/146/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:42:49 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:42:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/147/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:43:00 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:43:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/148/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:43:08 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-06-16 18:43:11 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://westportlibrary.org/calendar/list/page/149/> (referer: https://westportlibrary.org/) ['zyte-api']
      2026-06-16 18:43:11 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-06-16 18:43:11 [scrapy.extensions.feedexport] INFO: Stored csv feed (255 items) in: output/2026/06/16/west_port_library.csv
      2026-06-16 18:43:11 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 449731,
       'downloader/request_count': 404,
       'downloader/request_method_count/GET': 404,
       'downloader/response_bytes': 97321478,
       'downloader/response_count': 404,
       'downloader/response_status_count/200': 404,
       'elapsed_time_seconds': 1297.224074,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 6, 16, 16, 43, 11, 812352, tzinfo=datetime.timezone.utc),
       'item_scraped_count': 255,
       'items_per_minute': 11.7964533538936,
       'log_count/DEBUG': 1588,
       'log_count/ERROR': 18,
       'log_count/INFO': 24,
       'log_count/WARNING': 1,
       'memusage/max': 190443520,
       'memusage/startup': 93032448,
       'request_depth_max': 148,
       'response_received_count': 404,
       'responses_per_minute': 18.68928296067849,
       'scheduler/dequeued': 404,
       'scheduler/dequeued/memory': 404,
       'scheduler/enqueued': 404,
       'scheduler/enqueued/memory': 404,
       'scrapy-zyte-api/429': 0,
       'scrapy-zyte-api/attempts': 409,
       'scrapy-zyte-api/error_ratio': 0.012224938875305624,
       'scrapy-zyte-api/error_types/download/temporary-error': 5,
       'scrapy-zyte-api/errors': 5,
       'scrapy-zyte-api/fatal_errors': 0,
       'scrapy-zyte-api/mean_connection_seconds': 10.579621714824475,
       'scrapy-zyte-api/mean_response_seconds': 9.982989003803425,
       'scrapy-zyte-api/processed': 404,
       'scrapy-zyte-api/request_args/customHttpRequestHeaders': 404,
       'scrapy-zyte-api/request_args/httpResponseBody': 404,
       'scrapy-zyte-api/request_args/httpResponseHeaders': 404,
       'scrapy-zyte-api/request_args/url': 404,
       'scrapy-zyte-api/status_codes/200': 404,
       'scrapy-zyte-api/status_codes/520': 5,
       'scrapy-zyte-api/success': 404,
       'scrapy-zyte-api/success_ratio': 1.0,
       'scrapy-zyte-api/throttle_ratio': 0.0,
       'start_time': datetime.datetime(2026, 6, 16, 16, 21, 34, 588278, tzinfo=datetime.timezone.utc)}
      2026-06-16 18:43:11 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/west_port_library/6f911e87699f11f18b560050565fa5d9/?job_finished=True

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/west_port_library/6f911e87699f11f18b560050565fa5d9.log

  • sourcelog
    last_update_time2026-06-16 18:43:11
    last_update_timestamp1781628191
    downloader/request_bytes449731
    downloader/request_count404
    downloader/request_method_count/GET404
    downloader/response_bytes97321478
    downloader/response_count404
    downloader/response_status_count/200404
    elapsed_time_seconds1297.224074
    feedexport/success_count/FileFeedStorage1
    finish_reasonfinished
    finish_timedatetime.datetime(2026, 6, 16, 16, 43, 11, 812352, tzinfo=datetime.timezone.utc)
    item_scraped_count255
    items_per_minute11.7964533538936
    log_count/DEBUG1588
    log_count/ERROR18
    log_count/INFO24
    log_count/WARNING1
    memusage/max190443520
    memusage/startup93032448
    request_depth_max148
    response_received_count404
    responses_per_minute18.68928296067849
    scheduler/dequeued404
    scheduler/dequeued/memory404
    scheduler/enqueued404
    scheduler/enqueued/memory404
    scrapy-zyte-api/4290
    scrapy-zyte-api/attempts409
    scrapy-zyte-api/error_ratio0.012224938875305624
    scrapy-zyte-api/error_types/download/temporary-error5
    scrapy-zyte-api/errors5
    scrapy-zyte-api/fatal_errors0
    scrapy-zyte-api/mean_connection_seconds10.579621714824475
    scrapy-zyte-api/mean_response_seconds9.982989003803425
    scrapy-zyte-api/processed404
    scrapy-zyte-api/request_args/customHttpRequestHeaders404
    scrapy-zyte-api/request_args/httpResponseBody404
    scrapy-zyte-api/request_args/httpResponseHeaders404
    scrapy-zyte-api/request_args/url404
    scrapy-zyte-api/status_codes/200404
    scrapy-zyte-api/status_codes/5205
    scrapy-zyte-api/success404
    scrapy-zyte-api/success_ratio1.0
    scrapy-zyte-api/throttle_ratio0.0
    start_timedatetime.datetime(2026, 6, 16, 16, 21, 34, 588278, tzinfo=datetime.timezone.utc)