Desktop version Jobs
  • Analysis
  • Categories
  • Charts
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spidernorwalk_pl
    jobe220b324696f11f1be8c0050565fa5d9
    first_log_time2026-06-16 12:41:13
    latest_log_time2026-06-16 12:50:14
    runtime0:09:01
    crawled_pages 0
    scraped_items 0
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count24
    log_warning_count2
    log_redirect_count0
    log_retry_count24
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_itemN/A
    • WARNING+

    • error_logs
      24 in total

      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
    • warning_logs
      2 in total

      2026-06-16 12:41:14 [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 12:41:14 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.norwalk_pl.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

    • retry_logs
      24 in total

      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      40c7ee29594096ea
    • latest_stat

      2026-06-16 12:50:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    • Head

      2026-06-16 12:41:13 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-06-16 12:41:13 [scrapy.utils.log] INFO: Versions:
      {'lxml': '6.0.2',
       'libxml2': '2.14.6',
       'cssselect': '1.3.0',
       'parsel': '1.10.0',
       'w3lib': '2.0.0',
       'Twisted': '25.5.0',
       'Python': '3.12.3 (main, 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 12:41:13 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-06-16 12:41:13 [asyncio] DEBUG: Using selector: EpollSelector
      2026-06-16 12:41:13 [scrapy.addons] INFO: Enabled addons:
      []
      2026-06-16 12:41:14 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-06-16 12:41:14 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-06-16 12:41:14 [scrapy.extensions.telnet] INFO: Telnet Password: 40c7ee29594096ea
      2026-06-16 12:41:14 [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 12:41:14 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x772aeb9f0400>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/norwalk_pl/e220b324696f11f1be8c0050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-06-16 12:41:14 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 12:41:14 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 12:41:14 [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 12:41:14 [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 12:41:14 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-06-16 12:41:14 [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 12:41:14 [scrapy.core.engine] INFO: Spider opened
      2026-06-16 12:41:14 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.norwalk_pl.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-06-16 12:41:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:41:14 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-06-16 12:42:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:43:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:43:29 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:44:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:45:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 2 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:45:44 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 1 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:46:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:47:14 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=23&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=14&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:47:59 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=25&Keywords=&startDate=&enddate=&> (failed 3 times): TCP connection timed out: 110: Connection timed out.
    • Tail

        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=7&year=2026&CID=24&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=6&year=2026&CID=24&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.scraper] ERROR: Error downloading <GET https://norwalkpl.org/calendar.aspx?month=8&year=2026&CID=23&Keywords=&startDate=&enddate=&>
      Traceback (most recent call last):
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/engine.py", line 490, in _download
          result = yield self.downloader.fetch(request)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1853, in _inlineCallbacks
          result = context.run(
                   ^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/twisted/python/failure.py", line 467, in throwExceptionIntoGenerator
          return g.throw(self.value.with_traceback(self.tb))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 144, in fetch
          yield deferred_from_coro(
        File "/root/.venv/lib/python3.12/site-packages/twisted/internet/defer.py", line 1257, in adapt
          extracted: _SelfResultT | Failure = result.result()
                                              ^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 158, in download_async
          result = await process_exception(ex)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 150, in process_exception
          raise exception
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 153, in download_async
          result: Response | Request = await process_request(request)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/middleware.py", line 97, in process_request
          return await download_func(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 202, in _enqueue_request
          return await maybe_deferred_to_future(d)  # fired in _wait_for_download()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 269, in _wait_for_download
          response = await self._download(slot, request)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/__init__.py", line 239, in _download
          response: Response = await self.handlers.download_request_async(request)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/__init__.py", line 156, in download_request_async
          return await handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy_zyte_api/handler.py", line 224, in download_request
          return await self._fallback_handler.download_request(request)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/root/.venv/lib/python3.12/site-packages/scrapy/core/downloader/handlers/http11.py", line 113, in download_request
          return await maybe_deferred_to_future(agent.download_request(request))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      twisted.internet.error.TCPTimedOutError: TCP connection timed out: 110: Connection timed out.
      2026-06-16 12:50:14 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-06-16 12:50:14 [scrapy.extensions.feedexport] INFO: Stored csv feed (0 items) in: output/2026/06/16/norwalk_pl.csv
      2026-06-16 12:50:14 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/exception_count': 36,
       'downloader/exception_type_count/twisted.internet.error.TCPTimedOutError': 36,
       'downloader/request_bytes': 32256,
       'downloader/request_count': 36,
       'downloader/request_method_count/GET': 36,
       'elapsed_time_seconds': 540.455953,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 6, 16, 10, 50, 14, 875782, tzinfo=datetime.timezone.utc),
       'items_per_minute': 0.0,
       'log_count/DEBUG': 24,
       'log_count/ERROR': 24,
       'log_count/INFO': 12,
       'memusage/max': 95526912,
       'memusage/startup': 93167616,
       'responses_per_minute': 0.0,
       'retry/count': 24,
       'retry/max_reached': 12,
       'retry/reason_count/twisted.internet.error.TCPTimedOutError': 24,
       'scheduler/dequeued': 36,
       'scheduler/dequeued/memory': 36,
       'scheduler/enqueued': 36,
       'scheduler/enqueued/memory': 36,
       'start_time': datetime.datetime(2026, 6, 16, 10, 41, 14, 419829, tzinfo=datetime.timezone.utc)}
      2026-06-16 12:50:14 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/norwalk_pl/e220b324696f11f1be8c0050565fa5d9/?job_finished=True&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/norwalk_pl/e220b324696f11f1be8c0050565fa5d9.log

  • sourcelog
    last update time2026-06-16 12:50:14
    last update timestamp1781607014
    downloader / exception count36
    downloader / exception type count / twisted.internet.error.TCPTimedOutError36
    downloader / request bytes32256
    downloader / request count36
    downloader / request method count / GET36
    elapsed time seconds540.455953
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 6, 16, 10, 50, 14, 875782, tzinfo=datetime.timezone.utc)
    items per minute0.0
    log count / DEBUG24
    log count / ERROR24
    log count / INFO12
    memusage / max95526912
    memusage / startup93167616
    responses per minute0.0
    retry / count24
    retry / max reached12
    retry / reason count / twisted.internet.error.TCPTimedOutError24
    scheduler / dequeued36
    scheduler / dequeued / memory36
    scheduler / enqueued36
    scheduler / enqueued / memory36
    start timedatetime.datetime(2026, 6, 16, 10, 41, 14, 419829, tzinfo=datetime.timezone.utc)