Desktop version Jobs
  • Analysis
  • Categories
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spidermoca_west
    job215df2fa95b411f1957f0050565fa5d9
    first_log_time2026-08-11 20:40:32
    latest_log_time2026-08-11 20:41:08
    runtime0:00:36
    crawled_pages 25
    scraped_items 20
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count8
    log_warning_count1
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_item{'event_url': 'https://mocact.org/moca-presents-the-heida-final-round/', 'platform_hash': 'de28e5de831ef6d60018b39319829943', 'raw_body': ''}
    • WARNING+

    • error_logs
      8 in total

      2026-08-11 20:40:37 [moca_west] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-11 20:40:37 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:40:38 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:40:38 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:40:38 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:40:38 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:40:40 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:41:08 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
    • warning_logs
      1 in total

      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:41: ScrapyDeprecationWarning: EventScrapersPipeline.open_spider() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.open_spider)
      
      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.process_item)
      
      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.moca_west_port.MocaWestSpider defines the deprecated start_requests() method. start_requests() has been deprecated in favor of a new method, start(), to support asynchronous code execution. start_requests() will stop being called in a future version of Scrapy. If you use Scrapy 2.13 or higher only, replace start_requests() with start(); note that start() is a coroutine (async def). If you need to maintain compatibility with lower Scrapy versions, when overriding start_requests() in a spider class, override start() as well; you can use super() to reuse the inherited start() implementation without copy-pasting. See the release notes of Scrapy 2.13 for details: https://docs.scrapy.org/en/2.13/news.html
        warn(
      
      2026-08-11 20:40:36 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/moca_west_port.py:76: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.
      
      The code that caused this warning is on line 76 of the file /root/event-list-scraping/event_scrapers/spiders/moca_west_port.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
      
        item['raw_body'] = str(bs(response.css('section#tribe-events-pg-template').get('')))
      

      INFO

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      34a4c9632251ca78
    • latest_duplicate

      2026-08-11 20:40:35 [scrapy.dupefilters] DEBUG: Filtered duplicate request: <GET https://mocact.org/events-calendar/mocact-presents-dee-dee-bridgewater-bill-charlap/> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates)
    • latest_crawl

      2026-08-11 20:41:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/events-calendar/mocact-presents-heida-hermanns-international-music-competition-final-round/> (referer: None) ['zyte-api']
    • latest_stat

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

      2026-08-11 20:41:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://mocact.org/moca-presents-the-heida-final-round/>
    • latest_item

      {'event_url': 'https://mocact.org/moca-presents-the-heida-final-round/',
       'platform_hash': 'de28e5de831ef6d60018b39319829943',
       'raw_body': ''}
    • Head

      2026-08-11 20:40:32 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-08-11 20:40:32 [scrapy.utils.log] INFO: Versions:
      {'lxml': '6.0.2',
       'libxml2': '2.14.6',
       'cssselect': '1.3.0',
       'parsel': '1.10.0',
       'w3lib': '2.0.0',
       'Twisted': '25.5.0',
       'Python': '3.12.3 (main, Jun 19 2026, 12:46:00) [GCC 13.3.0]',
       'pyOpenSSL': '25.3.0 (OpenSSL 3.5.4 30 Sep 2025)',
       'cryptography': '46.0.3',
       'Platform': 'Linux-6.8.0-90-generic-x86_64-with-glibc2.39'}
      2026-08-11 20:40:32 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-08-11 20:40:32 [asyncio] DEBUG: Using selector: EpollSelector
      2026-08-11 20:40:32 [scrapy.addons] INFO: Enabled addons:
      []
      2026-08-11 20:40:32 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-08-11 20:40:32 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-08-11 20:40:32 [scrapy.extensions.telnet] INFO: Telnet Password: 34a4c9632251ca78
      2026-08-11 20:40:32 [scrapy.middleware] INFO: Enabled extensions:
      ['scrapy.extensions.corestats.CoreStats',
       'scrapy.extensions.logcount.LogCount',
       'scrapy.extensions.telnet.TelnetConsole',
       'scrapy.extensions.memusage.MemoryUsage',
       'scrapy.extensions.feedexport.FeedExporter',
       'scrapy.extensions.logstats.LogStats']
      2026-08-11 20:40:32 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x782188e3b380>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/moca_west/215df2fa95b411f1957f0050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-08-11 20:40:32 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-11 20:40:32 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-11 20:40:32 [scrapy.middleware] INFO: Enabled downloader middlewares:
      ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware',
       'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
       'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
       'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
       'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
       'scrapy.downloadermiddlewares.retry.RetryMiddleware',
       'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
       'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
       'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
       'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
       'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
       'scrapy.downloadermiddlewares.stats.DownloaderStats']
      2026-08-11 20:40:32 [scrapy.middleware] INFO: Enabled spider middlewares:
      ['scrapy.spidermiddlewares.start.StartSpiderMiddleware',
       'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
       'scrapy.spidermiddlewares.referer.RefererMiddleware',
       'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
       'scrapy.spidermiddlewares.depth.DepthMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPIRefererSpiderMiddleware']
      2026-08-11 20:40:32 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:41: ScrapyDeprecationWarning: EventScrapersPipeline.open_spider() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.open_spider)
      
      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/pipelines/__init__.py:47: ScrapyDeprecationWarning: EventScrapersPipeline.process_item() requires a spider argument, this is deprecated and the argument will not be passed in future Scrapy versions. If you need to access the spider instance you can save the crawler instance passed to from_crawler() and use its spider attribute.
        self._check_mw_method_spider_arg(pipe.process_item)
      
      2026-08-11 20:40:32 [scrapy.core.engine] INFO: Spider opened
      2026-08-11 20:40:32 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.moca_west_port.MocaWestSpider defines the deprecated start_requests() method. start_requests() has been deprecated in favor of a new method, start(), to support asynchronous code execution. start_requests() will stop being called in a future version of Scrapy. If you use Scrapy 2.13 or higher only, replace start_requests() with start(); note that start() is a coroutine (async def). If you need to maintain compatibility with lower Scrapy versions, when overriding start_requests() in a spider class, override start() as well; you can use super() to reuse the inherited start() implementation without copy-pasting. See the release notes of Scrapy 2.13 for details: https://docs.scrapy.org/en/2.13/news.html
        warn(
      
      2026-08-11 20:40:32 [moca_west] INFO: Sending scraped events to prod API
      2026-08-11 20:40:32 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-08-11 20:40:32 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-08-11 20:40:32 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): mocact.org:443
      2026-08-11 20:40:33 [urllib3.connectionpool] DEBUG: https://mocact.org:443 "GET /events/ HTTP/1.1" 200 None
      2026-08-11 20:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:33 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/wp-json/tribe/views/v2/html?pu=%2Fnew-events%2Fmonth%2F2026-08%2F%3Fshortcode%3Df0b1cb7d&u=%2Fnew-events%2Flist%2F%3Fshortcode%3Df0b1cb7d%26tribe-bar-date%3D2026-9-15&smu=false&tvn1=5b31f38bb7&tvn2=> (referer: https://mocact.org/) ['zyte-api']
      2026-08-11 20:40:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/wp-json/tribe/views/v2/html?pu=%2Fnew-events%2Fmonth%2F2026-08%2F%3Fshortcode%3Df0b1cb7d&u=%2Fnew-events%2Flist%2F%3Fshortcode%3Df0b1cb7d%26tribe-bar-date%3D2026-11-15&smu=false&tvn1=5b31f38bb7&tvn2=> (referer: https://mocact.org/) ['zyte-api']
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-08-11 20:40:35 [scrapy.dupefilters] DEBUG: Filtered duplicate request: <GET https://mocact.org/events-calendar/mocact-presents-dee-dee-bridgewater-bill-charlap/> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates)
      2026-08-11 20:40:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/wp-json/tribe/views/v2/html?pu=%2Fnew-events%2Fmonth%2F2026-08%2F%3Fshortcode%3Df0b1cb7d&u=%2Fnew-events%2Flist%2F%3Fshortcode%3Df0b1cb7d%26tribe-bar-date%3D2026-10-15&smu=false&tvn1=5b31f38bb7&tvn2=> (referer: https://mocact.org/) ['zyte-api']
      2026-08-11 20:40:35 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/wp-json/tribe/views/v2/html?pu=%2Fnew-events%2Fmonth%2F2026-08%2F%3Fshortcode%3Df0b1cb7d&u=%2Fnew-events%2Flist%2F%3Fshortcode%3Df0b1cb7d%26tribe-bar-date%3D2026-12-15&smu=false&tvn1=5b31f38bb7&tvn2=> (referer: https://mocact.org/) ['zyte-api']
      2026-08-11 20:40:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/events-calendar/encaustic-collage-with-leslie-giuliani/> (referer: None) ['zyte-api']
      2026-08-11 20:40:36 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/events-calendar/rick-shaefer-studio-visit-members-only/> (referer: None) ['zyte-api']
      2026-08-11 20:40:36 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/moca_west_port.py:76: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.
      
    • Tail

                   '</span>\n'
                   '<a class="tribe-events-gmap" '
                   'href="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=19+Newtown+Turnpike+Westport+CT+06880+United+States" '
                   'rel="noreferrer noopener" target="_blank" title="Click to view a '
                   'Google Map">+ Google Map</a> </address>\n'
                   '</li>\n'
                   '<li class="tribe-events-meta-item">\n'
                   '<span class="tribe-venue-tel-label '
                   'tribe-events-meta-label">Phone</span>\n'
                   '<span class="tribe-venue-tel tribe-events-meta-value"> (203) '
                   '222-7070 </span>\n'
                   '</li>\n'
                   '<li class="tribe-events-meta-item">\n'
                   '<span class="tribe-venue-url tribe-events-meta-value"> <a '
                   'href="https://mocawestport.com" rel="external" '
                   'target="_self">View Venue Website</a> </span>\n'
                   '</li>\n'
                   '</ul>\n'
                   '</div>\n'
                   '<div class="tribe-events-meta-group '
                   'tribe-events-meta-group-gmap">\n'
                   '<div class="tribe-events-venue-map">\n'
                   '<iframe allowfullscreen="" aria-label="Venue location map" '
                   'frameborder="0" height="350px" '
                   'src="https://www.google.com/maps/embed/v1/place?key=AIzaSyDNsicAsP6-VuGtAb1O9riI3oc_NOb7IOU&amp;q=19+Newtown+Turnpike+Westport+CT+06880+United+States+&amp;zoom=10" '
                   'style="border:0" title="Google maps iframe displaying the '
                   'address to MoCA Westport" width="100%">\n'
                   '</iframe>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '<h2 class="tribe-events-related-events-title">\n'
                   '\tRelated Events</h2>\n'
                   '<ul class="tribe-related-events tribe-clearfix">\n'
                   '<li>\n'
                   '<div class="tribe-related-events-thumbnail">\n'
                   '<a aria-hidden="true" class="url" '
                   'href="https://mocact.org/events-calendar/advanced-art-studio-for-adults-with-disabilities-06-06-2026/2026-08-22/" '
                   'rel="bookmark" role="presentation" tabindex="-1"><img '
                   'alt="Advanced Art Studio for Adults with Disabilities" '
                   'src="https://mocact.org/wp-content/plugins/events-calendar-pro/src/resources/images/tribe-related-events-placeholder.png"/></a>\n'
                   '</div>\n'
                   '<div class="tribe-related-event-info">\n'
                   '<h3 class="tribe-related-events-title"><a '
                   'class="tribe-event-url" '
                   'href="https://mocact.org/events-calendar/advanced-art-studio-for-adults-with-disabilities-06-06-2026/2026-08-22/" '
                   'rel="bookmark">Advanced Art Studio for Adults with '
                   'Disabilities</a></h3>\n'
                   '<span class="tribe-event-date-start">August 22 @ 1:45 pm</span> '
                   '- <span class="tribe-event-time">2:45 pm</span>\n'
                   '<span class="tribe-events-calendar-series-archive__container '
                   'tribe-events-calendar-series-archive__container--pill">\n'
                   '<a aria-label="Event series: Advanced Art Studio for Adults with '
                   'Disabilities" class="tribe-events-calendar-series-archive__link" '
                   'href="https://mocact.org/series/advanced-art-studio-for-adults-with-disabilities/">\n'
                   '<svg aria-hidden="true" class="tribe-common-c-svgicon '
                   'tribe-common-c-svgicon--series '
                   'tribe-events-series-archive__icon" fill="none" height="12" '
                   'viewbox="0 0 14 12" width="14" '
                   'xmlns="http://www.w3.org/2000/svg">\n'
                   '<rect height="7" width="9" x="0.5" y="4.5"></rect>\n'
                   '<path d="M2 2.5H11.5V10"></path>\n'
                   '<path d="M4 0.5H13.5V8"></path>\n'
                   '</svg>\n'
                   '</a>\n'
                   '</span>\n'
                   '</div>\n'
                   '</li>\n'
                   '<li>\n'
                   '<div class="tribe-related-events-thumbnail">\n'
                   '<a aria-hidden="true" class="url" '
                   'href="https://mocact.org/events-calendar/advanced-art-studio-for-adults-with-disabilities-06-06-2026/2026-08-29/" '
                   'rel="bookmark" role="presentation" tabindex="-1"><img '
                   'alt="Advanced Art Studio for Adults with Disabilities" '
                   'src="https://mocact.org/wp-content/plugins/events-calendar-pro/src/resources/images/tribe-related-events-placeholder.png"/></a>\n'
                   '</div>\n'
                   '<div class="tribe-related-event-info">\n'
                   '<h3 class="tribe-related-events-title"><a '
                   'class="tribe-event-url" '
                   'href="https://mocact.org/events-calendar/advanced-art-studio-for-adults-with-disabilities-06-06-2026/2026-08-29/" '
                   'rel="bookmark">Advanced Art Studio for Adults with '
                   'Disabilities</a></h3>\n'
                   '<span class="tribe-event-date-start">August 29 @ 1:45 pm</span> '
                   '- <span class="tribe-event-time">2:45 pm</span>\n'
                   '<span class="tribe-events-calendar-series-archive__container '
                   'tribe-events-calendar-series-archive__container--pill">\n'
                   '<a aria-label="Event series: Advanced Art Studio for Adults with '
                   'Disabilities" class="tribe-events-calendar-series-archive__link" '
                   'href="https://mocact.org/series/advanced-art-studio-for-adults-with-disabilities/">\n'
                   '<svg aria-hidden="true" class="tribe-common-c-svgicon '
                   'tribe-common-c-svgicon--series '
                   'tribe-events-series-archive__icon" fill="none" height="12" '
                   'viewbox="0 0 14 12" width="14" '
                   'xmlns="http://www.w3.org/2000/svg">\n'
                   '<rect height="7" width="9" x="0.5" y="4.5"></rect>\n'
                   '<path d="M2 2.5H11.5V10"></path>\n'
                   '<path d="M4 0.5H13.5V8"></path>\n'
                   '</svg>\n'
                   '</a>\n'
                   '</span>\n'
                   '</div>\n'
                   '</li>\n'
                   '<li>\n'
                   '<div class="tribe-related-events-thumbnail">\n'
                   '<a aria-hidden="true" class="url" '
                   'href="https://mocact.org/events-calendar/encaustic-collage-with-leslie-giuliani/" '
                   'rel="bookmark" role="presentation" tabindex="-1"><img '
                   'alt="Encaustic Collage with Leslie Giuliani" '
                   'src="https://mocact.org/wp-content/plugins/events-calendar-pro/src/resources/images/tribe-related-events-placeholder.png"/></a>\n'
                   '</div>\n'
                   '<div class="tribe-related-event-info">\n'
                   '<h3 class="tribe-related-events-title"><a '
                   'class="tribe-event-url" '
                   'href="https://mocact.org/events-calendar/encaustic-collage-with-leslie-giuliani/" '
                   'rel="bookmark">Encaustic Collage with Leslie Giuliani</a></h3>\n'
                   '<span class="tribe-event-date-start">September 17 @ 6:00 '
                   'pm</span> - <span class="tribe-event-time">8:00 pm</span> '
                   '</div>\n'
                   '</li>\n'
                   '</ul>\n'
                   '</div> <!-- #post-x -->\n'
                   '<!-- Event footer -->\n'
                   '<div id="tribe-events-footer">\n'
                   '<!-- Navigation -->\n'
                   '<nav aria-label="Event Navigation" '
                   'class="tribe-events-nav-pagination">\n'
                   '<ul class="tribe-events-sub-nav">\n'
                   '<li class="tribe-events-nav-previous"><a '
                   'href="https://mocact.org/events-calendar/art-adventures-4-2-6-2-2-2-2-2/2026-08-15/"><span>«</span> '
                   'Art Adventures</a></li>\n'
                   '<li class="tribe-events-nav-next"><a '
                   'href="https://mocact.org/events-calendar/gallery-talk-with-rick-shaefer/">Gallery '
                   'Talk with Rick Shaefer <span>»</span></a></li>\n'
                   '</ul>\n'
                   '<!-- .tribe-events-sub-nav -->\n'
                   '</nav>\n'
                   '</div>\n'
                   '<!-- #tribe-events-footer -->\n'
                   '</div><!-- #tribe-events-content -->\n'
                   '<div class="tribe-events-after-html"></div>\n'
                   '<!--\n'
                   'This calendar is powered by The Events Calendar.\n'
                   'http://evnt.is/18wn\n'
                   '-->\n'
                   '</section></body></html>'}
      2026-08-11 20:41:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://mocact.org/events-calendar/mocact-presents-heida-hermanns-international-music-competition-final-round/> (referer: None) ['zyte-api']
      2026-08-11 20:41:08 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-11 20:41:08 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 47
      2026-08-11 20:41:08 [moca_west] ERROR: API error 400: {"event_body":["This field may not be blank."]}
      2026-08-11 20:41:08 [scrapy.core.scraper] DEBUG: Scraped from <200 https://mocact.org/moca-presents-the-heida-final-round/>
      {'event_url': 'https://mocact.org/moca-presents-the-heida-final-round/',
       'platform_hash': 'de28e5de831ef6d60018b39319829943',
       'raw_body': ''}
      2026-08-11 20:41:08 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-08-11 20:41:08 [scrapy.extensions.feedexport] INFO: Stored csv feed (20 items) in: output/2026/08/11/moca_west.csv
      2026-08-11 20:41:08 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 10009,
       'downloader/request_count': 25,
       'downloader/request_method_count/GET': 25,
       'downloader/response_bytes': 4118938,
       'downloader/response_count': 25,
       'downloader/response_status_count/200': 25,
       'dupefilter/filtered': 19,
       'elapsed_time_seconds': 35.598326,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 8, 11, 18, 41, 8, 269168, tzinfo=datetime.timezone.utc),
       'item_scraped_count': 20,
       'items_per_minute': 34.285714285714285,
       'log_count/DEBUG': 113,
       'log_count/ERROR': 8,
       'log_count/INFO': 3,
       'log_count/WARNING': 1,
       'memusage/max': 99639296,
       'memusage/startup': 99639296,
       'request_depth_max': 1,
       'response_received_count': 25,
       'responses_per_minute': 42.857142857142854,
       'scheduler/dequeued': 25,
       'scheduler/dequeued/memory': 25,
       'scheduler/enqueued': 25,
       'scheduler/enqueued/memory': 25,
       'scrapy-zyte-api/429': 0,
       'scrapy-zyte-api/attempts': 25,
       'scrapy-zyte-api/error_ratio': 0.0,
       'scrapy-zyte-api/errors': 0,
       'scrapy-zyte-api/fatal_errors': 0,
       'scrapy-zyte-api/mean_connection_seconds': 3.5747574479877944,
       'scrapy-zyte-api/mean_response_seconds': 3.776360294222832,
       'scrapy-zyte-api/processed': 25,
       'scrapy-zyte-api/request_args/customHttpRequestHeaders': 5,
       'scrapy-zyte-api/request_args/httpResponseBody': 25,
       'scrapy-zyte-api/request_args/httpResponseHeaders': 25,
       'scrapy-zyte-api/request_args/url': 25,
       'scrapy-zyte-api/status_codes/200': 25,
       'scrapy-zyte-api/success': 25,
       'scrapy-zyte-api/success_ratio': 1.0,
       'scrapy-zyte-api/throttle_ratio': 0.0,
       'start_time': datetime.datetime(2026, 8, 11, 18, 40, 32, 670842, tzinfo=datetime.timezone.utc)}
      2026-08-11 20:41:08 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/moca_west/215df2fa95b411f1957f0050565fa5d9/?job_finished=True&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/moca_west/215df2fa95b411f1957f0050565fa5d9.log

  • sourcelog
    last update time2026-08-11 20:41:08
    last update timestamp1786473668
    downloader / request bytes10009
    downloader / request count25
    downloader / request method count / GET25
    downloader / response bytes4118938
    downloader / response count25
    downloader / response status count / 20025
    dupefilter / filtered19
    elapsed time seconds35.598326
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 8, 11, 18, 41, 8, 269168, tzinfo=datetime.timezone.utc)
    item scraped count20
    items per minute34.285714285714285
    log count / DEBUG113
    log count / ERROR8
    log count / INFO3
    log count / WARNING1
    memusage / max99639296
    memusage / startup99639296
    request depth max1
    response received count25
    responses per minute42.857142857142854
    scheduler / dequeued25
    scheduler / dequeued / memory25
    scheduler / enqueued25
    scheduler / enqueued / memory25
    scrapy-zyte-api / 4290
    scrapy-zyte-api / attempts25
    scrapy-zyte-api / error ratio0.0
    scrapy-zyte-api / errors0
    scrapy-zyte-api / fatal errors0
    scrapy-zyte-api / mean connection seconds3.5747574479877944
    scrapy-zyte-api / mean response seconds3.776360294222832
    scrapy-zyte-api / processed25
    scrapy-zyte-api / request args / customHttpRequestHeaders5
    scrapy-zyte-api / request args / httpResponseBody25
    scrapy-zyte-api / request args / httpResponseHeaders25
    scrapy-zyte-api / request args / url25
    scrapy-zyte-api / status codes / 20025
    scrapy-zyte-api / success25
    scrapy-zyte-api / success ratio1.0
    scrapy-zyte-api / throttle ratio0.0
    start timedatetime.datetime(2026, 8, 11, 18, 40, 32, 670842, tzinfo=datetime.timezone.utc)