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 & 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 & 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 & 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 & 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)