Desktop version Jobs
  • Analysis
  • Categories
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spidersails_american_grill
    job68d75977905811f1b1610050565fa5d9
    first_log_time2026-08-05 01:01:28
    latest_log_time2026-08-05 01:01:29
    runtime0:00:01
    crawled_pages 1
    scraped_items 2
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count2
    log_warning_count3
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_item{'event_url': 'https://www.sailsamericangrill.com/live-music/#tangled_vine', 'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d', 'raw_body': '<section class="c-two-col--freeform content container ' 'c-two-col-thumbs revealable">\n' '<h2>Tangled Vine</h2>\n' '<div class="row">\n' '<div class="col-md-6">\n' '<div class="image-thumbnail" style="background-image: ' "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/49191Sin_tiÌtulo_8.5_x_8.5_cm_5.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n" ' \n' ' \n' ' \n' ' \n' '\n' ' 50.0% 50.0%\n' ';">\n' '<img alt="a white square with black text" class="sr-only"/>\n' '</div>\n' '</div>\n' '<div class="col-md-6">\n' '<div class="image-thumbnail" style="background-image: ' "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/95923tangledVine.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n" ' \n' ' \n' ' \n' ' \n' '\n' ' 50.0% 50.0%\n' '">\n' '<img alt="a group of people on a stage" class="sr-only"/>\n' '</div>\n' '</div>\n' '</div>\n' '</section>'}
    • WARNING+

    • error_logs
      2 in total

      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
    • warning_logs
      3 in total

      2026-08-05 01:01:28 [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-05 01:01:28 [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-05 01:01:28 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.sails_american_grill.SailsGrillSpider 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

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      d9356235a85a9040
    • latest_crawl

      2026-08-05 01:01:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.sailsamericangrill.com/live-music/> (referer: None)
    • latest_stat

      2026-08-05 01:01:28 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    • latest_scrape

      2026-08-05 01:01:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.sailsamericangrill.com/live-music/>
    • latest_item

      {'event_url': 'https://www.sailsamericangrill.com/live-music/#tangled_vine',
       'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d',
       'raw_body': '<section class="c-two-col--freeform content container '
                   'c-two-col-thumbs revealable">\n'
                   '<h2>Tangled Vine</h2>\n'
                   '<div class="row">\n'
                   '<div class="col-md-6">\n'
                   '<div class="image-thumbnail" style="background-image: '
                   "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/49191Sin_tiÌtulo_8.5_x_8.5_cm_5.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n"
                   '  \n'
                   '  \n'
                   '    \n'
                   '  \n'
                   '\n'
                   '  50.0% 50.0%\n'
                   ';">\n'
                   '<img alt="a white square with black text" class="sr-only"/>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="col-md-6">\n'
                   '<div class="image-thumbnail" style="background-image: '
                   "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/95923tangledVine.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n"
                   '  \n'
                   '  \n'
                   '    \n'
                   '  \n'
                   '\n'
                   '  50.0% 50.0%\n'
                   '">\n'
                   '<img alt="a group of people on a stage" class="sr-only"/>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</section>'}
    • Head

      2026-08-05 01:01:28 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-08-05 01:01: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, 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-05 01:01:28 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-08-05 01:01:28 [asyncio] DEBUG: Using selector: EpollSelector
      2026-08-05 01:01:28 [scrapy.addons] INFO: Enabled addons:
      []
      2026-08-05 01:01:28 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-08-05 01:01:28 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-08-05 01:01:28 [scrapy.extensions.telnet] INFO: Telnet Password: d9356235a85a9040
      2026-08-05 01:01:28 [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-05 01:01:28 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x75250d43b4c0>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/sails_american_grill/68d75977905811f1b1610050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-08-05 01:01:28 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-05 01:01:28 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-05 01:01:28 [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-05 01:01:28 [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-05 01:01:28 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-08-05 01:01:28 [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-05 01:01:28 [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-05 01:01:28 [scrapy.core.engine] INFO: Spider opened
      2026-08-05 01:01:28 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.sails_american_grill.SailsGrillSpider 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-05 01:01:28 [sails_american_grill] INFO: Sending scraped events to prod API
      2026-08-05 01:01:28 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-08-05 01:01:28 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-08-05 01:01:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.sailsamericangrill.com/live-music/> (referer: None)
      2026-08-05 01:01:28 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-05 01:01:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.sailsamericangrill.com/live-music/>
      {'event_url': 'https://www.sailsamericangrill.com/live-music/#live_music',
       'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d',
       'raw_body': '<section class="c-one-col--text content container revealable">\n'
                   '<h2>Live Music</h2>\n'
                   '<p style="text-align: center;">Great music, great vibes, and the '
                   'perfect volume to relax, sing along, or dance the night '
                   'away.<br/><br/>Check out the Summer Live Music '
                   'below.</p><p>\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0'
                   '<br/> <img class="fr-fic fr-dib" data-alt_text="" '
                   'src="https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/Flyers_Sails_3.png?w=1000&amp;fit=max&amp;auto=compress,format&amp;cs=origin&amp;h=1000" '
                   'style="width: 495px;"/></p>\n'
                   '</section>'}
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-05 01:01:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.sailsamericangrill.com/live-music/>
      {'event_url': 'https://www.sailsamericangrill.com/live-music/#tangled_vine',
       'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d',
       'raw_body': '<section class="c-two-col--freeform content container '
                   'c-two-col-thumbs revealable">\n'
                   '<h2>Tangled Vine</h2>\n'
                   '<div class="row">\n'
    • Tail

      2026-08-05 01:01:28 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-08-05 01:01: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, 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-05 01:01:28 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-08-05 01:01:28 [asyncio] DEBUG: Using selector: EpollSelector
      2026-08-05 01:01:28 [scrapy.addons] INFO: Enabled addons:
      []
      2026-08-05 01:01:28 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-08-05 01:01:28 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-08-05 01:01:28 [scrapy.extensions.telnet] INFO: Telnet Password: d9356235a85a9040
      2026-08-05 01:01:28 [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-05 01:01:28 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x75250d43b4c0>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/sails_american_grill/68d75977905811f1b1610050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-08-05 01:01:28 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-05 01:01:28 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-05 01:01:28 [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-05 01:01:28 [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-05 01:01:28 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-08-05 01:01:28 [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-05 01:01:28 [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-05 01:01:28 [scrapy.core.engine] INFO: Spider opened
      2026-08-05 01:01:28 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.sails_american_grill.SailsGrillSpider 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-05 01:01:28 [sails_american_grill] INFO: Sending scraped events to prod API
      2026-08-05 01:01:28 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-08-05 01:01:28 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-08-05 01:01:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.sailsamericangrill.com/live-music/> (referer: None)
      2026-08-05 01:01:28 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-05 01:01:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.sailsamericangrill.com/live-music/>
      {'event_url': 'https://www.sailsamericangrill.com/live-music/#live_music',
       'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d',
       'raw_body': '<section class="c-one-col--text content container revealable">\n'
                   '<h2>Live Music</h2>\n'
                   '<p style="text-align: center;">Great music, great vibes, and the '
                   'perfect volume to relax, sing along, or dance the night '
                   'away.<br/><br/>Check out the Summer Live Music '
                   'below.</p><p>\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0'
                   '<br/> <img class="fr-fic fr-dib" data-alt_text="" '
                   'src="https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/Flyers_Sails_3.png?w=1000&amp;fit=max&amp;auto=compress,format&amp;cs=origin&amp;h=1000" '
                   'style="width: 495px;"/></p>\n'
                   '</section>'}
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-05 01:01:29 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 400 68
      2026-08-05 01:01:29 [sails_american_grill] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-05 01:01:29 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.sailsamericangrill.com/live-music/>
      {'event_url': 'https://www.sailsamericangrill.com/live-music/#tangled_vine',
       'platform_hash': '38b68bf1c977e29da892d4ce9a02ac5d',
       'raw_body': '<section class="c-two-col--freeform content container '
                   'c-two-col-thumbs revealable">\n'
                   '<h2>Tangled Vine</h2>\n'
                   '<div class="row">\n'
                   '<div class="col-md-6">\n'
                   '<div class="image-thumbnail" style="background-image: '
                   "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/49191Sin_tiÌtulo_8.5_x_8.5_cm_5.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n"
                   '  \n'
                   '  \n'
                   '    \n'
                   '  \n'
                   '\n'
                   '  50.0% 50.0%\n'
                   ';">\n'
                   '<img alt="a white square with black text" class="sr-only"/>\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="col-md-6">\n'
                   '<div class="image-thumbnail" style="background-image: '
                   "url('https://images.getbento.com/accounts/bec09eb91ba876e002ad21f08d7c7b9a/media/images/95923tangledVine.png?w=5400&amp;fit=max&amp;auto=compress,format&amp;cs=origin');background-position: \n"
                   '  \n'
                   '  \n'
                   '    \n'
                   '  \n'
                   '\n'
                   '  50.0% 50.0%\n'
                   '">\n'
                   '<img alt="a group of people on a stage" class="sr-only"/>\n'
                   '</div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</section>'}
      2026-08-05 01:01:29 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-08-05 01:01:29 [scrapy.extensions.feedexport] INFO: Stored csv feed (2 items) in: output/2026/08/05/sails_american_grill.csv
      2026-08-05 01:01:29 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 242,
       'downloader/request_count': 1,
       'downloader/request_method_count/GET': 1,
       'downloader/response_bytes': 11482,
       'downloader/response_count': 1,
       'downloader/response_status_count/200': 1,
       'elapsed_time_seconds': 1.174673,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 8, 4, 23, 1, 29, 638919, tzinfo=datetime.timezone.utc),
       'httpcompression/response_bytes': 40715,
       'httpcompression/response_count': 1,
       'item_scraped_count': 2,
       'items_per_minute': 120.0,
       'log_count/DEBUG': 7,
       'log_count/ERROR': 2,
       'log_count/INFO': 3,
       'memusage/max': 99762176,
       'memusage/startup': 99762176,
       'response_received_count': 1,
       'responses_per_minute': 60.0,
       'scheduler/dequeued': 1,
       'scheduler/dequeued/memory': 1,
       'scheduler/enqueued': 1,
       'scheduler/enqueued/memory': 1,
       'start_time': datetime.datetime(2026, 8, 4, 23, 1, 28, 464246, tzinfo=datetime.timezone.utc)}
      2026-08-05 01:01:29 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/sails_american_grill/68d75977905811f1b1610050565fa5d9/?job_finished=True&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/sails_american_grill/68d75977905811f1b1610050565fa5d9.log

  • sourcelog
    last update time2026-08-05 01:01:29
    last update timestamp1785884489
    downloader / request bytes242
    downloader / request count1
    downloader / request method count / GET1
    downloader / response bytes11482
    downloader / response count1
    downloader / response status count / 2001
    elapsed time seconds1.174673
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 8, 4, 23, 1, 29, 638919, tzinfo=datetime.timezone.utc)
    httpcompression / response bytes40715
    httpcompression / response count1
    item scraped count2
    items per minute120.0
    log count / DEBUG7
    log count / ERROR2
    log count / INFO3
    memusage / max99762176
    memusage / startup99762176
    response received count1
    responses per minute60.0
    scheduler / dequeued1
    scheduler / dequeued / memory1
    scheduler / enqueued1
    scheduler / enqueued / memory1
    start timedatetime.datetime(2026, 8, 4, 23, 1, 28, 464246, tzinfo=datetime.timezone.utc)