Desktop version Jobs
  • Analysis
  • Categories
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spiderbrass_bonect
    job239291f4692711f1959e0050565fa5d9
    first_log_time2026-06-16 04:00:28
    latest_log_time2026-06-16 04:00:32
    runtime0:00:04
    crawled_pages 1
    scraped_items 20
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count16
    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://brassandbonect.com/events/#bad_management_at_brass_&_bone_thursday_08_20_2026', 'platform_hash': 'e13843b4b7e09a32288d3baf2c458376', 'raw_body': '<html><body><div class="content-grid__item event" ' 'data-date="2026-08-20" data-id="101" data-start-time="9PM" ' 'data-title="Bad Management at Brass &amp; Bone"><div ' 'class="event-image"><img alt="Bad Management" class="undefined" ' 'decoding="async" height="410" loading="lazy" ' 'src="/images/posters/101/small.webp" ' 'srcset="/images/posters/101/small.webp, ' '/images/posters/101/medium.webp 2x" width="328"/></div><p ' 'class="event-datetime"><span class="-capitalize">thursday ' '08/20</span> 9PM</p><p class="event-title">Bad ' 'Management</p><div class="event-description">Hailing from the ' 'corners of CT, Bad Management is here to serve you a heaping ' 'portion of funk with a healthy side of rock and blues, and a ' 'nice jar of jams to finish it off!</div><div ' 'class="event-links"><a class="social-link" ' 'href="https://www.instagram.com/badmanagementband" ' 'target="_blank"><img ,="" alt="instagram logo" decoding="async" ' 'height="40" loading="lazy" ' 'src="/images/social/instagram/1x.webp" ' 'srcset="/images/social/instagram/1x.webp, ' '/images/social/instagram/2x.webp 2x, ' '/images/social/instagram/3x.webp 3x" ' 'width="40"/></a></div></div></body></html>'}
    • WARNING+

    • error_logs
      16 in total

      2026-06-16 04:00:30 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:30 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:30 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:30 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:32 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
    • warning_logs
      1 in total

      2026-06-16 04:00:29 [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 04:00:29 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.brass_bonect.BrassBonectSpider 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 04:00:30 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/brass_bonect.py:25: 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 25 of the file /root/event-list-scraping/event_scrapers/spiders/brass_bonect.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
      
        item['raw_body'] = str(bs(event.get()))
      

      INFO

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      67fb52232797ae9b
    • latest_crawl

      2026-06-16 04:00:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://brassandbonect.com/events/> (referer: None)
    • latest_stat

      2026-06-16 04:00:29 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    • latest_scrape

      2026-06-16 04:00:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
    • latest_item

      {'event_url': 'https://brassandbonect.com/events/#bad_management_at_brass_&_bone_thursday_08_20_2026',
       'platform_hash': 'e13843b4b7e09a32288d3baf2c458376',
       'raw_body': '<html><body><div class="content-grid__item event" '
                   'data-date="2026-08-20" data-id="101" data-start-time="9PM" '
                   'data-title="Bad Management at Brass &amp; Bone"><div '
                   'class="event-image"><img alt="Bad Management" class="undefined" '
                   'decoding="async" height="410" loading="lazy" '
                   'src="/images/posters/101/small.webp" '
                   'srcset="/images/posters/101/small.webp, '
                   '/images/posters/101/medium.webp 2x" width="328"/></div><p '
                   'class="event-datetime"><span class="-capitalize">thursday '
                   '08/20</span> 9PM</p><p class="event-title">Bad '
                   'Management</p><div class="event-description">Hailing from the '
                   'corners of CT, Bad Management is here to serve you a heaping '
                   'portion of funk with a healthy side of rock and blues, and a '
                   'nice jar of jams to finish it off!</div><div '
                   'class="event-links"><a class="social-link" '
                   'href="https://www.instagram.com/badmanagementband" '
                   'target="_blank"><img ,="" alt="instagram logo" decoding="async" '
                   'height="40" loading="lazy" '
                   'src="/images/social/instagram/1x.webp" '
                   'srcset="/images/social/instagram/1x.webp, '
                   '/images/social/instagram/2x.webp 2x, '
                   '/images/social/instagram/3x.webp 3x" '
                   'width="40"/></a></div></div></body></html>'}
    • Head

      2026-06-16 04:00:28 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-06-16 04:00:28 [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 04:00:28 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-06-16 04:00:28 [asyncio] DEBUG: Using selector: EpollSelector
      2026-06-16 04:00:28 [scrapy.addons] INFO: Enabled addons:
      []
      2026-06-16 04:00:29 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-06-16 04:00:29 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-06-16 04:00:29 [scrapy.extensions.telnet] INFO: Telnet Password: 67fb52232797ae9b
      2026-06-16 04:00:29 [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 04:00:29 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x7aeaa85e0540>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/brass_bonect/239291f4692711f1959e0050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-06-16 04:00:29 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 04:00:29 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-06-16 04:00:29 [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 04:00:29 [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 04:00:29 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-06-16 04:00:29 [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 04:00:29 [scrapy.core.engine] INFO: Spider opened
      2026-06-16 04:00:29 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.brass_bonect.BrassBonectSpider 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 04:00:29 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-06-16 04:00:29 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-06-16 04:00:30 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://brassandbonect.com/events/> (referer: None)
      2026-06-16 04:00:30 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/brass_bonect.py:25: 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 25 of the file /root/event-list-scraping/event_scrapers/spiders/brass_bonect.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
      
        item['raw_body'] = str(bs(event.get()))
      
      2026-06-16 04:00:30 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 04:00:30 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 1243
      2026-06-16 04:00:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
      {'event_url': 'https://brassandbonect.com/events/#open_mic_night_at_brass_&_bone_tuesday_06_16_2026',
       'platform_hash': 'e13843b4b7e09a32288d3baf2c458376',
       'raw_body': '<html><body><div class="content-grid__item event" '
                   'data-date="2026-06-16" data-id="2" data-start-time="8PM" '
                   'data-title="Open Mic Night at Brass &amp; Bone"><div '
                   'class="event-image"><img alt="Open Mic Night" class="undefined" '
                   'decoding="async" loading="lazy" '
                   'src="/images/posters/open-mic-night/small.webp" '
                   'srcset="/images/posters/open-mic-night/small.webp, '
                   '/images/posters/open-mic-night/medium.webp 2x"/></div><p '
                   'class="event-datetime"><span class="-capitalize">tuesday '
                   '06/16</span> 8PM</p><p class="event-title">Open Mic '
                   'Night</p><div class="event-description">Come on down and '
                   'showcase your talents! With a full backline of gear available, '
                   "it's all set up to just plug in and play. If you're not one to "
                   'jump up on stage, come check out some amazing local talent while '
                   'you take advantage of some great food and drink '
                   'specials!</div></div></body></html>'}
      2026-06-16 04:00:30 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 04:00:30 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 201 1189
      2026-06-16 04:00:30 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
    • Tail

                   '/images/social/youtube/2x.webp 2x, '
                   '/images/social/youtube/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" '
                   'href="https://www.facebook.com/p/Kovac-Brothers-100065328676331" '
                   'target="_blank"><img ,="" alt="facebook logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/facebook/1x.webp" '
                   'srcset="/images/social/facebook/1x.webp, '
                   '/images/social/facebook/2x.webp 2x, '
                   '/images/social/facebook/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" '
                   'href="https://www.instagram.com/kovacbrothersmusic" '
                   'target="_blank"><img ,="" alt="instagram logo" decoding="async" '
                   'height="40" loading="lazy" '
                   'src="/images/social/instagram/1x.webp" '
                   'srcset="/images/social/instagram/1x.webp, '
                   '/images/social/instagram/2x.webp 2x, '
                   '/images/social/instagram/3x.webp 3x" '
                   'width="40"/></a></div></div></body></html>'}
      2026-06-16 04:00:31 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 04:00:31 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
      {'event_url': 'https://brassandbonect.com/events/#fuzz_on_it_at_brass_&_bone_thursday_07_30_2026',
       'platform_hash': 'e13843b4b7e09a32288d3baf2c458376',
       'raw_body': '<html><body><div class="content-grid__item event" '
                   'data-date="2026-07-30" data-id="92" data-start-time="9PM" '
                   'data-title="Fuzz On It at Brass &amp; Bone"><div '
                   'class="event-image"><img alt="Fuzz On It" class="undefined" '
                   'decoding="async" height="410" loading="lazy" '
                   'src="/images/posters/92/small.webp" '
                   'srcset="/images/posters/92/small.webp, '
                   '/images/posters/92/medium.webp 2x" width="328"/></div><p '
                   'class="event-datetime"><span class="-capitalize">thursday '
                   '07/30</span> 9PM</p><p class="event-title">Fuzz On It</p><div '
                   'class="event-description">Guitarist, vocalist, songwriter, '
                   'producer and all around energetic and engaging performer, Fuzz '
                   'has enjoyed a successful career as an international touring and '
                   'recording artist for the past twenty-five years. Most notably '
                   'with projects he created such as Deep Banana Blackout, Caravan '
                   'of Thieves and Big Fuzz in addition to touring with the Tom Tom '
                   'Club and sharing the stage with The Allman Brothers, John '
                   'Scofield, Keb Mo, Emmylou Harris, Bela Fleck, The Meters, '
                   'members of Phish, the James Brown band and many '
                   'others.<br/><br/>Being a creative visionary, Fuzz has been able '
                   'to blend a variety of styles in each of his projects resulting '
                   'in a uniquely unified sound and securing his niche on the funk, '
                   'jam, folk, jazz and performing arts scenes. His latest endeavor, '
                   '“Fuzz On It” is a culmination of all of these efforts bringing '
                   'together the essential elements of his past projects while '
                   'stirring in some island seasoning for a little sunny ‘funk in '
                   'the sun’. Performances can range from solo acoustic to a large '
                   'electric band filled with some of the many talented musicians '
                   'Fuzz has collaborated with over the years. Regardless of the '
                   'configuration however, the delivery is consistently dynamic, '
                   'fun, and full of energy. Life is good!</div><div '
                   'class="event-links"><a class="social-link" '
                   'href="https://fuzzonit.com/" target="_blank"><img ,="" '
                   'alt="website logo" decoding="async" height="40" loading="lazy" '
                   'src="/images/social/website/1x.webp" '
                   'srcset="/images/social/website/1x.webp, '
                   '/images/social/website/2x.webp 2x, '
                   '/images/social/website/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" '
                   'href="https://open.spotify.com/artist/2al8ctW77lVlBd2DFMJnit" '
                   'target="_blank"><img ,="" alt="spotify logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/spotify/1x.webp" '
                   'srcset="/images/social/spotify/1x.webp, '
                   '/images/social/spotify/2x.webp 2x, '
                   '/images/social/spotify/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" href="https://www.youtube.com/@fuzzonit" '
                   'target="_blank"><img ,="" alt="youtube logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/youtube/1x.webp" '
                   'srcset="/images/social/youtube/1x.webp, '
                   '/images/social/youtube/2x.webp 2x, '
                   '/images/social/youtube/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" href="https://www.facebook.com/fuzzonit" '
                   'target="_blank"><img ,="" alt="facebook logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/facebook/1x.webp" '
                   'srcset="/images/social/facebook/1x.webp, '
                   '/images/social/facebook/2x.webp 2x, '
                   '/images/social/facebook/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" href="https://www.instagram.com/fuzz_on_it" '
                   'target="_blank"><img ,="" alt="instagram logo" decoding="async" '
                   'height="40" loading="lazy" '
                   'src="/images/social/instagram/1x.webp" '
                   'srcset="/images/social/instagram/1x.webp, '
                   '/images/social/instagram/2x.webp 2x, '
                   '/images/social/instagram/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" '
                   'href="https://music.apple.com/us/artist/fuzz-on-it/1741634960" '
                   'target="_blank"><img ,="" alt="apple_music logo" '
                   'decoding="async" height="40" loading="lazy" '
                   'src="/images/social/apple_music/1x.webp" '
                   'srcset="/images/social/apple_music/1x.webp, '
                   '/images/social/apple_music/2x.webp 2x, '
                   '/images/social/apple_music/3x.webp 3x" '
                   'width="40"/></a></div></div></body></html>'}
      2026-06-16 04:00:31 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 04:00:31 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-06-16 04:00:31 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:31 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
      {'event_url': 'https://brassandbonect.com/events/#zully_ramos_and_the_ogs_at_brass_&_bone_saturday_08_15_2026',
       'platform_hash': 'e13843b4b7e09a32288d3baf2c458376',
       'raw_body': '<html><body><div class="content-grid__item event" '
                   'data-date="2026-08-15" data-id="100" data-start-time="930PM" '
                   'data-title="Zully Ramos and the OGs at Brass &amp; Bone"><div '
                   'class="event-image"><img alt="Zully Ramos and the OGs" '
                   'class="undefined" decoding="async" height="410" loading="lazy" '
                   'src="/images/posters/100/small.webp" '
                   'srcset="/images/posters/100/small.webp, '
                   '/images/posters/100/medium.webp 2x" width="328"/></div><p '
                   'class="event-datetime"><span class="-capitalize">saturday '
                   '08/15</span> 930PM</p><p class="event-title">Zully Ramos and the '
                   'OGs</p><div class="event-description">A long time performer, '
                   'Zully Ramos has sung on countless stages across the Tri-State '
                   'area. From theater and cabaret performances around Fairfield '
                   'County, to being the lead singer of various bands, Zully has '
                   'trained her voice to cross genres.</div><div '
                   'class="event-links"><a class="social-link" '
                   'href="https://www.youtube.com/@ZullyRamosMusic" '
                   'target="_blank"><img ,="" alt="youtube logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/youtube/1x.webp" '
                   'srcset="/images/social/youtube/1x.webp, '
                   '/images/social/youtube/2x.webp 2x, '
                   '/images/social/youtube/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" '
                   'href="https://www.facebook.com/ZullyRamosMusic" '
                   'target="_blank"><img ,="" alt="facebook logo" decoding="async" '
                   'height="40" loading="lazy" src="/images/social/facebook/1x.webp" '
                   'srcset="/images/social/facebook/1x.webp, '
                   '/images/social/facebook/2x.webp 2x, '
                   '/images/social/facebook/3x.webp 3x" width="40"/> </a><a '
                   'class="social-link" href="https://www.instagram.com/zrandtheogs" '
                   'target="_blank"><img ,="" alt="instagram logo" decoding="async" '
                   'height="40" loading="lazy" '
                   'src="/images/social/instagram/1x.webp" '
                   'srcset="/images/social/instagram/1x.webp, '
                   '/images/social/instagram/2x.webp 2x, '
                   '/images/social/instagram/3x.webp 3x" '
                   'width="40"/></a></div></div></body></html>'}
      2026-06-16 04:00:32 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 144.91.120.141:80
      2026-06-16 04:00:32 [urllib3.connectionpool] DEBUG: http://144.91.120.141:80 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-06-16 04:00:32 [brass_bonect] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-06-16 04:00:32 [scrapy.core.scraper] DEBUG: Scraped from <200 https://brassandbonect.com/events/>
      {'event_url': 'https://brassandbonect.com/events/#bad_management_at_brass_&_bone_thursday_08_20_2026',
       'platform_hash': 'e13843b4b7e09a32288d3baf2c458376',
       'raw_body': '<html><body><div class="content-grid__item event" '
                   'data-date="2026-08-20" data-id="101" data-start-time="9PM" '
                   'data-title="Bad Management at Brass &amp; Bone"><div '
                   'class="event-image"><img alt="Bad Management" class="undefined" '
                   'decoding="async" height="410" loading="lazy" '
                   'src="/images/posters/101/small.webp" '
                   'srcset="/images/posters/101/small.webp, '
                   '/images/posters/101/medium.webp 2x" width="328"/></div><p '
                   'class="event-datetime"><span class="-capitalize">thursday '
                   '08/20</span> 9PM</p><p class="event-title">Bad '
                   'Management</p><div class="event-description">Hailing from the '
                   'corners of CT, Bad Management is here to serve you a heaping '
                   'portion of funk with a healthy side of rock and blues, and a '
                   'nice jar of jams to finish it off!</div><div '
                   'class="event-links"><a class="social-link" '
                   'href="https://www.instagram.com/badmanagementband" '
                   'target="_blank"><img ,="" alt="instagram logo" decoding="async" '
                   'height="40" loading="lazy" '
                   'src="/images/social/instagram/1x.webp" '
                   'srcset="/images/social/instagram/1x.webp, '
                   '/images/social/instagram/2x.webp 2x, '
                   '/images/social/instagram/3x.webp 3x" '
                   'width="40"/></a></div></div></body></html>'}
      2026-06-16 04:00:32 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-06-16 04:00:32 [scrapy.extensions.feedexport] INFO: Stored csv feed (20 items) in: output/2026/06/16/brass_bonect.csv
      2026-06-16 04:00:32 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 230,
       'downloader/request_count': 1,
       'downloader/request_method_count/GET': 1,
       'downloader/response_bytes': 12059,
       'downloader/response_count': 1,
       'downloader/response_status_count/200': 1,
       'elapsed_time_seconds': 2.788372,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 6, 16, 2, 0, 32, 72843, tzinfo=datetime.timezone.utc),
       'httpcompression/response_bytes': 50077,
       'httpcompression/response_count': 1,
       'item_scraped_count': 20,
       'items_per_minute': 600.0,
       'log_count/DEBUG': 61,
       'log_count/ERROR': 16,
       'log_count/INFO': 3,
       'log_count/WARNING': 1,
       'memusage/max': 93421568,
       'memusage/startup': 93421568,
       'response_received_count': 1,
       'responses_per_minute': 30.0,
       'scheduler/dequeued': 1,
       'scheduler/dequeued/memory': 1,
       'scheduler/enqueued': 1,
       'scheduler/enqueued/memory': 1,
       'start_time': datetime.datetime(2026, 6, 16, 2, 0, 29, 284471, tzinfo=datetime.timezone.utc)}
      2026-06-16 04:00:32 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/brass_bonect/239291f4692711f1959e0050565fa5d9/?job_finished=True&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/brass_bonect/239291f4692711f1959e0050565fa5d9.log

  • sourcelog
    last update time2026-06-16 04:00:32
    last update timestamp1781575232
    downloader / request bytes230
    downloader / request count1
    downloader / request method count / GET1
    downloader / response bytes12059
    downloader / response count1
    downloader / response status count / 2001
    elapsed time seconds2.788372
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 6, 16, 2, 0, 32, 72843, tzinfo=datetime.timezone.utc)
    httpcompression / response bytes50077
    httpcompression / response count1
    item scraped count20
    items per minute600.0
    log count / DEBUG61
    log count / ERROR16
    log count / INFO3
    log count / WARNING1
    memusage / max93421568
    memusage / startup93421568
    response received count1
    responses per minute30.0
    scheduler / dequeued1
    scheduler / dequeued / memory1
    scheduler / enqueued1
    scheduler / enqueued / memory1
    start timedatetime.datetime(2026, 6, 16, 2, 0, 29, 284471, tzinfo=datetime.timezone.utc)