Desktop version Jobs
  • Analysis
  • Categories
  • Logs
  • Crawler.stats
  • projectevent_scrapers
    spiderrowayton_arts
    jobad1ac97e95d511f1b73a0050565fa5d9
    first_log_time2026-08-12 00:40:42
    latest_log_time2026-08-12 00:41:04
    runtime0:00:22
    crawled_pages 128
    scraped_items 124
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count39
    log_warning_count2
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_item{'event_url': 'https://rowaytonarts.org/prospectus-holiday-gift-show-2026/', 'platform': 'Rowayton Arts', 'platform_hash': '411f909a280d7f99b7c51c67af471c8b', 'raw_body': '<html><body><div class="blog-post blog-post-single">\n' '<article class="post-35847 post type-post status-publish ' 'format-standard hentry category-prospectus" id="post-35847">\n' '<div class="post-content-wrapper">\n' '<div class="post-content">\n' '<div class="entry-content">\n' '<p class="p1">The <b>Rowayton Arts Center (RAC)</b> is looking ' 'for well-crafted and appealing gift items at reasonable prices ' 'for its Holiday Gift Show (HGS). We are accepting small ' 'ornaments and holiday-related gifts as well jewelry, pottery and ' 'ceramics, candles, wooden toys and other objects, ' 'knitted/crocheted items, fiber art and, for Exhibiting Members ' 'only, original cards and small prints/paintings.<span ' 'class="Apple-converted-space">\xa0</span></p>\n' '<p><strong>Show Dates: </strong>December 4\xa0– December 24</p>\n' '<p class="p1">As a change for this year, prospective vendors are ' 'invited to bring samples of their work to RAC on two <b>drop-in ' 'Jurying Days</b> so the committee can see the items in person ' 'and discuss quality, quantity and price.<span ' 'class="Apple-converted-space">\xa0</span></p>\n' '<p class="p1"><b>Jurying Days: Monday, September 14 (5-7pm) or ' 'Tuesday, September 15 (12-2pm). You will be notified on or ' 'before Friday, September 18 of the acceptance status of your ' 'items.</b></p>\n' '<p class="p1"><b>PLEASE NOTE:</b> Items will be included at the ' 'discretion of our Gift Show Committee. The committee may refuse ' 'any item on the grounds of unsuitability, poor condition, ' 'inferior quality, not adhering to the prospectus guidelines, ' 'oversized for gallery space or too high of a price point.</p>\n' '<p class="p1"><b>Please DO NOT submit items for consideration ' 'that did not sell in previous RAC Holiday Gift Shows.</b></p>\n' '<p class="p1"><b>For RAC Exhibiting Members and Supporting ' 'Members:</b> Entry fee $25, membership dues must be current and ' 'a commission fee of 40% will be taken on your gross sales.</p>\n' '<p class="p1"><b>For RAC Non-Members:</b> Entry fee of $35 and a ' 'commission fee of 40% will be taken on your gross sales.</p>\n' '<p class="p1"><b>Note: </b>Participation in the HGS does not ' 'count towards the three shows needed to become a RAC Exhibiting ' 'Member.</p>\n' '<p class="p1"><b>Volunteer Hours: </b>All participants are ' 'expected to volunteer for a two-hour shift during the course of ' 'the show.</p>\n' '<p class="p1"><b>Vendors may opt-out of volunteer requirement ' 'for a $40 fee payable at registration.</b></p>\n' '<h3 class="p1"><b>ITEM CATEGORY AND QUANTITY ' 'GUIDELINES:</b></h3>\n' '<p class="p1"><b>Ornaments:</b> maximum of 5 designs, 5 pieces ' 'each</p>\n' '<p class="p1"><b>Small items:</b> jewelry, small knits, table ' 'décor: 10 items maximum</p>\n' '<p class="p1"><b>Large items: </b>pottery, sweaters, 3 ' 'items</p>\n' '<p class="p1"><b><i>Please Note: </i></b><i>Accepted item ' 'quantities may vary from the above guidelines at the discretion ' 'of the committee.</i></p>\n' '<p class="p1"><i><strong>PLEASE SIMPLIFY YOUR INVENTORY</strong> ' 'by keeping similar items at the same price point. For example, ' 'five assorted necklaces that have a price span of $30-$40 could ' 'all be priced at $35.</i></p>\n' '<p class="p1"><i>If your inventory begins to run low, the Gift ' 'Show Committee will reach out and ask you to replenish. Please ' 'do not replenish items without speaking to a Gift Show Committee ' 'member who will amend your Inventory Form accordingly with stock ' 'received.</i></p>\n' '<p class="p1"><b>For jewelry vendors:</b> please provide forms ' 'for display of your items and label them with your name. There ' 'is limited display area for jewelry.</p>\n' '<p class="p1"><b>For Exhibiting Members Only:</b></p>\n' '<p class="p1"><b>Small unframed art or prints: </b>size ' 'approximately 10” x 12”, maximum of 10</p>\n' '<p class="p1"><b>Cards:</b> 20 individual cards or 5 ' 'pre-packaged card sets</p>\n' '<p class="p1">Please provide a simple and tasteful display ' 'basket or box (no holiday embellishments) that will ' '<b>comfortably</b> hold your items. Label the container with ' 'your name.</p>\n' '<p class="p3"><i>Holiday Gift Show Drop Off of accepted items ' 'and member cards and prints will take place on <strong>Monday, ' 'November 23 and Tuesday, November 24. </strong></i></p>\n' '<p class="p3"><i>A link to sign up for an individual drop off ' 'time will be shared with accepted vendors closer to the ' 'date.</i></p>\n' '</div><!-- .entry-content -->\n' '</div>\n' '</div>\n' '<div class="post-info">\n' '<div class="post-social-wrapper">\n' '<div class="post-social">\n' '<a class="facebook-share" href="#" title="Share this"> <i ' 'class="fa fa-facebook"></i></a>\n' '<a class="twitter-share" href="#" title="Tweet this"> <i ' 'class="fa fa-twitter"></i></a>\n' '<a class="googleplus-share" href="#" title="Share with Google ' 'Plus"> <i class="fa fa-google-plus"></i></a>\n' '</div>\n' '<div class="clear"></div>\n' '</div>\n' '</div>\n' '</article>\n' '</div></body></html>'}
    • WARNING+

    • error_logs
      39 in total

      2026-08-12 00:40:45 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:45 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:45 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:46 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:47 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:48 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:49 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:50 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:50 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:50 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:50 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:50 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
      2026-08-12 00:40:51 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:40:51 [rowayton_arts] ERROR: API error 500: 
      <!doctype html>
      <html lang="en">
      <head>
        <title>Server Error (500)</title>
      </head>
      <body>
        <h1>Server Error (500)</h1><p></p>
      </body>
      </html>
      
      2026-08-12 00:41:03 [rowayton_arts] ERROR: API error 400: {"event_url":["Raw Event Data with this event url already exists."]}
    • warning_logs
      2 in total

      2026-08-12 00:40:42 [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-12 00:40:42 [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-12 00:40:42 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.rowayton_arts.ListingSpider 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-12 00:40:43 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://rowaytonarts.org/events/flavors-of-summer/>, and there are cookies in the cookiejar, but ZYTE_API_EXPERIMENTAL_COOKIES_ENABLED is False, so automatic mapping will not map cookies for this or any other request. To silence this warning, disable cookies for all requests that use automatic mapping, either with the COOKIES_ENABLED setting or with the dont_merge_cookies request metadata key.
      2026-08-12 00:40:44 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/rowayton_arts.py:90: 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 90 of the file /root/event-list-scraping/event_scrapers/spiders/rowayton_arts.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
      
        soup = bs(body)
      

      INFO

      DEBUG

    • scrapy_version

      2.14.1
    • telnet_console

      127.0.0.1:6023
    • telnet_password

      f3e3ab158671c970
    • latest_duplicate

      2026-08-12 00:40:43 [scrapy.dupefilters] DEBUG: Filtered duplicate request: <GET https://rowaytonarts.org/events/intro-to-watercolor-studio-2026-09-14-2026-09-21-2026-09-28/> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates)
    • latest_crawl

      2026-08-12 00:41:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/prospectus-holiday-gift-show-2026/#new_tab> (referer: https://rowaytonarts.org/exhibitions/)
    • latest_stat

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

      2026-08-12 00:41:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://rowaytonarts.org/prospectus-holiday-gift-show-2026/>
    • latest_item

      {'event_url': 'https://rowaytonarts.org/prospectus-holiday-gift-show-2026/',
       'platform': 'Rowayton Arts',
       'platform_hash': '411f909a280d7f99b7c51c67af471c8b',
       'raw_body': '<html><body><div class="blog-post blog-post-single">\n'
                   '<article class="post-35847 post type-post status-publish '
                   'format-standard hentry category-prospectus" id="post-35847">\n'
                   '<div class="post-content-wrapper">\n'
                   '<div class="post-content">\n'
                   '<div class="entry-content">\n'
                   '<p class="p1">The <b>Rowayton Arts Center (RAC)</b> is looking '
                   'for well-crafted and appealing gift items at reasonable prices '
                   'for its Holiday Gift Show (HGS). We are accepting small '
                   'ornaments and holiday-related gifts as well jewelry, pottery and '
                   'ceramics, candles, wooden toys and other objects, '
                   'knitted/crocheted items, fiber art and, for Exhibiting Members '
                   'only, original cards and small prints/paintings.<span '
                   'class="Apple-converted-space">\xa0</span></p>\n'
                   '<p><strong>Show Dates: </strong>December 4\xa0– December 24</p>\n'
                   '<p class="p1">As a change for this year, prospective vendors are '
                   'invited to bring samples of their work to RAC on two <b>drop-in '
                   'Jurying Days</b> so the committee can see the items in person '
                   'and discuss quality, quantity and price.<span '
                   'class="Apple-converted-space">\xa0</span></p>\n'
                   '<p class="p1"><b>Jurying Days: Monday, September 14 (5-7pm) or '
                   'Tuesday, September 15 (12-2pm). You will be notified on or '
                   'before Friday, September 18 of the acceptance status of your '
                   'items.</b></p>\n'
                   '<p class="p1"><b>PLEASE NOTE:</b> Items will be included at the '
                   'discretion of our Gift Show Committee. The committee may refuse '
                   'any item on the grounds of unsuitability, poor condition, '
                   'inferior quality, not adhering to the prospectus guidelines, '
                   'oversized for gallery space or too high of a price point.</p>\n'
                   '<p class="p1"><b>Please DO NOT submit items for consideration '
                   'that did not sell in previous RAC Holiday Gift Shows.</b></p>\n'
                   '<p class="p1"><b>For RAC Exhibiting Members and Supporting '
                   'Members:</b> Entry fee $25, membership dues must be current and '
                   'a commission fee of 40% will be taken on your gross sales.</p>\n'
                   '<p class="p1"><b>For RAC Non-Members:</b> Entry fee of $35 and a '
                   'commission fee of 40% will be taken on your gross sales.</p>\n'
                   '<p class="p1"><b>Note: </b>Participation in the HGS does not '
                   'count towards the three shows needed to become a RAC Exhibiting '
                   'Member.</p>\n'
                   '<p class="p1"><b>Volunteer Hours: </b>All participants are '
                   'expected to volunteer for a two-hour shift during the course of '
                   'the show.</p>\n'
                   '<p class="p1"><b>Vendors may opt-out of volunteer requirement '
                   'for a $40 fee payable at registration.</b></p>\n'
                   '<h3 class="p1"><b>ITEM CATEGORY AND QUANTITY '
                   'GUIDELINES:</b></h3>\n'
                   '<p class="p1"><b>Ornaments:</b> maximum of 5 designs, 5 pieces '
                   'each</p>\n'
                   '<p class="p1"><b>Small items:</b> jewelry, small knits, table '
                   'décor: 10 items maximum</p>\n'
                   '<p class="p1"><b>Large items: </b>pottery, sweaters, 3 '
                   'items</p>\n'
                   '<p class="p1"><b><i>Please Note: </i></b><i>Accepted item '
                   'quantities may vary from the above guidelines at the discretion '
                   'of the committee.</i></p>\n'
                   '<p class="p1"><i><strong>PLEASE SIMPLIFY YOUR INVENTORY</strong> '
                   'by keeping similar items at the same price point. For example, '
                   'five assorted necklaces that have a price span of $30-$40 could '
                   'all be priced at $35.</i></p>\n'
                   '<p class="p1"><i>If your inventory begins to run low, the Gift '
                   'Show Committee will reach out and ask you to replenish. Please '
                   'do not replenish items without speaking to a Gift Show Committee '
                   'member who will amend your Inventory Form accordingly with stock '
                   'received.</i></p>\n'
                   '<p class="p1"><b>For jewelry vendors:</b> please provide forms '
                   'for display of your items and label them with your name. There '
                   'is limited display area for jewelry.</p>\n'
                   '<p class="p1"><b>For Exhibiting Members Only:</b></p>\n'
                   '<p class="p1"><b>Small unframed art or prints: </b>size '
                   'approximately 10” x 12”, maximum of 10</p>\n'
                   '<p class="p1"><b>Cards:</b> 20 individual cards or 5 '
                   'pre-packaged card sets</p>\n'
                   '<p class="p1">Please provide a simple and tasteful display '
                   'basket or box (no holiday embellishments) that will '
                   '<b>comfortably</b> hold your items. Label the container with '
                   'your name.</p>\n'
                   '<p class="p3"><i>Holiday Gift Show Drop Off of accepted items '
                   'and member cards and prints will take place on <strong>Monday, '
                   'November 23 and Tuesday, November 24. </strong></i></p>\n'
                   '<p class="p3"><i>A link to sign up for an individual drop off '
                   'time will be shared with accepted vendors closer to the '
                   'date.</i></p>\n'
                   '</div><!-- .entry-content -->\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="post-info">\n'
                   '<div class="post-social-wrapper">\n'
                   '<div class="post-social">\n'
                   '<a class="facebook-share" href="#" title="Share this"> <i '
                   'class="fa fa-facebook"></i></a>\n'
                   '<a class="twitter-share" href="#" title="Tweet this"> <i '
                   'class="fa fa-twitter"></i></a>\n'
                   '<a class="googleplus-share" href="#" title="Share with Google '
                   'Plus"> <i class="fa fa-google-plus"></i></a>\n'
                   '</div>\n'
                   '<div class="clear"></div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</article>\n'
                   '</div></body></html>'}
    • Head

      2026-08-12 00:40:42 [scrapy.utils.log] INFO: Scrapy 2.14.1 started (bot: event_scrapers)
      2026-08-12 00:40:42 [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-12 00:40:42 [scrapy.crawler] DEBUG: Using AsyncCrawlerProcess
      2026-08-12 00:40:42 [asyncio] DEBUG: Using selector: EpollSelector
      2026-08-12 00:40:42 [scrapy.addons] INFO: Enabled addons:
      []
      2026-08-12 00:40:42 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-08-12 00:40:42 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-08-12 00:40:42 [scrapy.extensions.telnet] INFO: Telnet Password: f3e3ab158671c970
      2026-08-12 00:40:42 [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-12 00:40:42 [scrapy.crawler] INFO: Overridden settings:
      {'BOT_NAME': 'event_scrapers',
       'FEED_EXPORT_ENCODING': 'utf-8',
       'FEED_URI_PARAMS': <function _feed_uri_params at 0x707a9422b4c0>,
       'LOG_FILE': '/root/event-list-scraping/logs/event_scrapers/rowayton_arts/ad1ac97e95d511f1b73a0050565fa5d9.log',
       'NEWSPIDER_MODULE': 'event_scrapers.spiders',
       'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
       'SPIDER_MODULES': ['event_scrapers.spiders']}
      2026-08-12 00:40:42 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-12 00:40:42 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with 'ff9baec'
      2026-08-12 00:40:42 [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-12 00:40:42 [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-12 00:40:42 [scrapy.middleware] INFO: Enabled item pipelines:
      ['event_scrapers.pipelines.EventScrapersPipeline']
      2026-08-12 00:40:42 [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-12 00:40:42 [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-12 00:40:42 [scrapy.core.engine] INFO: Spider opened
      2026-08-12 00:40:42 [py.warnings] WARNING: /root/.venv/lib/python3.12/site-packages/scrapy/core/spidermw.py:490: ScrapyDeprecationWarning: event_scrapers.spiders.rowayton_arts.ListingSpider 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-12 00:40:42 [rowayton_arts] INFO: Sending scraped events to prod API
      2026-08-12 00:40:42 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-08-12 00:40:42 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=8&year=2026&start=2026-08-01&end=2026-08-31> (referer: None)
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=9&year=2026&start=2026-09-01&end=2026-09-30> (referer: None)
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=10&year=2026&start=2026-10-01&end=2026-10-31> (referer: None)
      2026-08-12 00:40:43 [scrapy.dupefilters] DEBUG: Filtered duplicate request: <GET https://rowaytonarts.org/events/intro-to-watercolor-studio-2026-09-14-2026-09-21-2026-09-28/> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates)
      2026-08-12 00:40:43 [scrapy_zyte_api._params] WARNING: Cookies are enabled for request <GET https://rowaytonarts.org/events/flavors-of-summer/>, and there are cookies in the cookiejar, but ZYTE_API_EXPERIMENTAL_COOKIES_ENABLED is False, so automatic mapping will not map cookies for this or any other request. To silence this warning, disable cookies for all requests that use automatic mapping, either with the COOKIES_ENABLED setting or with the dont_merge_cookies request metadata key.
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/exhibitions/> (referer: None)
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/events/block-printmaking-workshop/> (referer: https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=8&year=2026&start=2026-08-01&end=2026-08-31)
      2026-08-12 00:40:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/events/flavors-of-summer/> (referer: https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=8&year=2026&start=2026-08-01&end=2026-08-31)
      2026-08-12 00:40:44 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://rowaytonarts.org/events/3-day-workshops-for-ages-8-12/> (referer: https://rowaytonarts.org/wp-admin/admin-ajax.php?action=WP_FullCalendar&type=event&category=-15&month=8&year=2026&start=2026-08-01&end=2026-08-31)
      2026-08-12 00:40:44 [py.warnings] WARNING: /root/event-list-scraping/event_scrapers/spiders/rowayton_arts.py:90: 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 90 of the file /root/event-list-scraping/event_scrapers/spiders/rowayton_arts.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.
      
        soup = bs(body)
      
      2026-08-12 00:40:44 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-12 00:40:44 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 4399
      2026-08-12 00:40:44 [scrapy.core.scraper] DEBUG: Scraped from <200 https://rowaytonarts.org/events/block-printmaking-workshop/>
      {'event_url': 'https://rowaytonarts.org/events/block-printmaking-workshop/',
       'platform': 'Rowayton Arts',
       'platform_hash': '411f909a280d7f99b7c51c67af471c8b',
       'raw_body': '<html><body><div class="blog-post blog-post-single">\n'
                   '<article class="post-35481 event type-event status-publish '
                   'has-post-thumbnail hentry event-categories-workshops-for-adults" '
                   'id="post-35481">\n'
                   '<div class="post-content-wrapper">\n'
                   '<div class="post-content">\n'
    • Tail

                   'five.</p>\n'
                   '<p class="p5"><b>Non-Members:</b>\xa0$35 for one piece, $10 for '
                   'each additional piece, up to five.</p>\n'
                   '<h3 class="p7"><em><span class="s2"><b>Submission link will be '
                   'live October 5</b></span></em></h3>\n'
                   '<p class="p3"><b>Juror Bio: </b><em>Sandra Pelletier is the '
                   'founder and owner of Sorelle Gallery, a fine art gallery and art '
                   'advisory firm that aims to connect her love of both fine art and '
                   'technology. Sorelle Gallery features a variety of traditional '
                   'and contemporary art, grounded in a commitment to client '
                   'service, fine art education and collection diversity. She '
                   'attended South Connecticut State University where she received a '
                   'Bachelor of Science in Art Education. She later attended the '
                   'College of St. Rose where she received her Master of Arts in Art '
                   'Education. She previously worked as a part time art teacher at '
                   'the Guilderland Central School District, as well as in '
                   'technology and sales.</em></p>\n'
                   '<h3 class="p3"><b>IMPORTANT DATES</b></h3>\n'
                   '<p class="p3"><b>Submission link is “live” on our website: '
                   '</b>October 5</p>\n'
                   '<p class="p3"><b>Submission Deadline: </b>October 30, '
                   'midnight</p>\n'
                   '<p class="p3"><b>Accepted Artists Notified: </b>on or before '
                   'Friday, November 6</p>\n'
                   '<p class="p3"><b>Receiving Dates: </b>Monday, November 16 '
                   '(5–7pm) and Tuesday, November 17 (12-2pm)</p>\n'
                   '<p class="p3"><i>ARTWORK MUST BE DELIVERED DURING RECEIVING '
                   'TIMES – COMMITTEE WILL</i></p>\n'
                   '<p class="p3"><i>NOT ACCEPT PIECES DELIVERED AFTER 2 pm '
                   'Tuesday,</i><b> </b>December 1, No exceptions!</p>\n'
                   '<p class="p3"><b>Opening Reception: </b>Sunday, November 22 '
                   '(4-6pm)</p>\n'
                   '<p class="p3"><b>Pick Up of your work: </b>Monday, January 4 and '
                   'Tuesday, January 5 (12-6pm)</p>\n'
                   '<p class="p3"><b>Please pick up your artwork during the '
                   'designated times. Due to extremely</b></p>\n'
                   '<p class="p3"><b>limited storage, any artwork not collected on '
                   'time will incur a $10 per day storage</b></p>\n'
                   '<p class="p3"><b>fee, which will begin accruing on the day after '
                   'the final pick-up date.</b></p>\n'
                   '<p class="p7"><span class="s3"><b>Questions? </b>Please email '
                   '</span><span '
                   'class="s2">executivedir@rowaytonarts.org</span></p>\n'
                   '</div><!-- .entry-content -->\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="post-info">\n'
                   '<div class="post-social-wrapper">\n'
                   '<div class="post-social">\n'
                   '<a class="facebook-share" href="#" title="Share this"> <i '
                   'class="fa fa-facebook"></i></a>\n'
                   '<a class="twitter-share" href="#" title="Tweet this"> <i '
                   'class="fa fa-twitter"></i></a>\n'
                   '<a class="googleplus-share" href="#" title="Share with Google '
                   'Plus"> <i class="fa fa-google-plus"></i></a>\n'
                   '</div>\n'
                   '<div class="clear"></div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</article>\n'
                   '</div></body></html>'}
      2026-08-12 00:41:04 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): norwalklist.org:443
      2026-08-12 00:41:04 [urllib3.connectionpool] DEBUG: https://norwalklist.org:443 "POST /api/v1/raw-events/ HTTP/1.1" 201 5205
      2026-08-12 00:41:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://rowaytonarts.org/prospectus-holiday-gift-show-2026/>
      {'event_url': 'https://rowaytonarts.org/prospectus-holiday-gift-show-2026/',
       'platform': 'Rowayton Arts',
       'platform_hash': '411f909a280d7f99b7c51c67af471c8b',
       'raw_body': '<html><body><div class="blog-post blog-post-single">\n'
                   '<article class="post-35847 post type-post status-publish '
                   'format-standard hentry category-prospectus" id="post-35847">\n'
                   '<div class="post-content-wrapper">\n'
                   '<div class="post-content">\n'
                   '<div class="entry-content">\n'
                   '<p class="p1">The <b>Rowayton Arts Center (RAC)</b> is looking '
                   'for well-crafted and appealing gift items at reasonable prices '
                   'for its Holiday Gift Show (HGS). We are accepting small '
                   'ornaments and holiday-related gifts as well jewelry, pottery and '
                   'ceramics, candles, wooden toys and other objects, '
                   'knitted/crocheted items, fiber art and, for Exhibiting Members '
                   'only, original cards and small prints/paintings.<span '
                   'class="Apple-converted-space">\xa0</span></p>\n'
                   '<p><strong>Show Dates: </strong>December 4\xa0– December 24</p>\n'
                   '<p class="p1">As a change for this year, prospective vendors are '
                   'invited to bring samples of their work to RAC on two <b>drop-in '
                   'Jurying Days</b> so the committee can see the items in person '
                   'and discuss quality, quantity and price.<span '
                   'class="Apple-converted-space">\xa0</span></p>\n'
                   '<p class="p1"><b>Jurying Days: Monday, September 14 (5-7pm) or '
                   'Tuesday, September 15 (12-2pm). You will be notified on or '
                   'before Friday, September 18 of the acceptance status of your '
                   'items.</b></p>\n'
                   '<p class="p1"><b>PLEASE NOTE:</b> Items will be included at the '
                   'discretion of our Gift Show Committee. The committee may refuse '
                   'any item on the grounds of unsuitability, poor condition, '
                   'inferior quality, not adhering to the prospectus guidelines, '
                   'oversized for gallery space or too high of a price point.</p>\n'
                   '<p class="p1"><b>Please DO NOT submit items for consideration '
                   'that did not sell in previous RAC Holiday Gift Shows.</b></p>\n'
                   '<p class="p1"><b>For RAC Exhibiting Members and Supporting '
                   'Members:</b> Entry fee $25, membership dues must be current and '
                   'a commission fee of 40% will be taken on your gross sales.</p>\n'
                   '<p class="p1"><b>For RAC Non-Members:</b> Entry fee of $35 and a '
                   'commission fee of 40% will be taken on your gross sales.</p>\n'
                   '<p class="p1"><b>Note: </b>Participation in the HGS does not '
                   'count towards the three shows needed to become a RAC Exhibiting '
                   'Member.</p>\n'
                   '<p class="p1"><b>Volunteer Hours: </b>All participants are '
                   'expected to volunteer for a two-hour shift during the course of '
                   'the show.</p>\n'
                   '<p class="p1"><b>Vendors may opt-out of volunteer requirement '
                   'for a $40 fee payable at registration.</b></p>\n'
                   '<h3 class="p1"><b>ITEM CATEGORY AND QUANTITY '
                   'GUIDELINES:</b></h3>\n'
                   '<p class="p1"><b>Ornaments:</b> maximum of 5 designs, 5 pieces '
                   'each</p>\n'
                   '<p class="p1"><b>Small items:</b> jewelry, small knits, table '
                   'décor: 10 items maximum</p>\n'
                   '<p class="p1"><b>Large items: </b>pottery, sweaters, 3 '
                   'items</p>\n'
                   '<p class="p1"><b><i>Please Note: </i></b><i>Accepted item '
                   'quantities may vary from the above guidelines at the discretion '
                   'of the committee.</i></p>\n'
                   '<p class="p1"><i><strong>PLEASE SIMPLIFY YOUR INVENTORY</strong> '
                   'by keeping similar items at the same price point. For example, '
                   'five assorted necklaces that have a price span of $30-$40 could '
                   'all be priced at $35.</i></p>\n'
                   '<p class="p1"><i>If your inventory begins to run low, the Gift '
                   'Show Committee will reach out and ask you to replenish. Please '
                   'do not replenish items without speaking to a Gift Show Committee '
                   'member who will amend your Inventory Form accordingly with stock '
                   'received.</i></p>\n'
                   '<p class="p1"><b>For jewelry vendors:</b> please provide forms '
                   'for display of your items and label them with your name. There '
                   'is limited display area for jewelry.</p>\n'
                   '<p class="p1"><b>For Exhibiting Members Only:</b></p>\n'
                   '<p class="p1"><b>Small unframed art or prints: </b>size '
                   'approximately 10” x 12”, maximum of 10</p>\n'
                   '<p class="p1"><b>Cards:</b> 20 individual cards or 5 '
                   'pre-packaged card sets</p>\n'
                   '<p class="p1">Please provide a simple and tasteful display '
                   'basket or box (no holiday embellishments) that will '
                   '<b>comfortably</b> hold your items. Label the container with '
                   'your name.</p>\n'
                   '<p class="p3"><i>Holiday Gift Show Drop Off of accepted items '
                   'and member cards and prints will take place on <strong>Monday, '
                   'November 23 and Tuesday, November 24. </strong></i></p>\n'
                   '<p class="p3"><i>A link to sign up for an individual drop off '
                   'time will be shared with accepted vendors closer to the '
                   'date.</i></p>\n'
                   '</div><!-- .entry-content -->\n'
                   '</div>\n'
                   '</div>\n'
                   '<div class="post-info">\n'
                   '<div class="post-social-wrapper">\n'
                   '<div class="post-social">\n'
                   '<a class="facebook-share" href="#" title="Share this"> <i '
                   'class="fa fa-facebook"></i></a>\n'
                   '<a class="twitter-share" href="#" title="Tweet this"> <i '
                   'class="fa fa-twitter"></i></a>\n'
                   '<a class="googleplus-share" href="#" title="Share with Google '
                   'Plus"> <i class="fa fa-google-plus"></i></a>\n'
                   '</div>\n'
                   '<div class="clear"></div>\n'
                   '</div>\n'
                   '</div>\n'
                   '</article>\n'
                   '</div></body></html>'}
      2026-08-12 00:41:04 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-08-12 00:41:04 [scrapy.extensions.feedexport] INFO: Stored csv feed (124 items) in: output/2026/08/12/rowayton_arts.csv
      2026-08-12 00:41:04 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 124382,
       'downloader/request_count': 128,
       'downloader/request_method_count/GET': 128,
       'downloader/response_bytes': 3016840,
       'downloader/response_count': 128,
       'downloader/response_status_count/200': 128,
       'dupefilter/filtered': 33,
       'elapsed_time_seconds': 21.626482,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 8, 11, 22, 41, 4, 188447, tzinfo=datetime.timezone.utc),
       'httpcompression/response_bytes': 10097432,
       'httpcompression/response_count': 128,
       'item_scraped_count': 124,
       'items_per_minute': 354.28571428571433,
       'log_count/DEBUG': 501,
       'log_count/ERROR': 39,
       'log_count/INFO': 3,
       'log_count/WARNING': 2,
       'memusage/max': 99794944,
       'memusage/startup': 99794944,
       'request_depth_max': 1,
       'response_received_count': 128,
       'responses_per_minute': 365.7142857142857,
       'scheduler/dequeued': 128,
       'scheduler/dequeued/memory': 128,
       'scheduler/enqueued': 128,
       'scheduler/enqueued/memory': 128,
       'start_time': datetime.datetime(2026, 8, 11, 22, 40, 42, 561965, tzinfo=datetime.timezone.utc)}
      2026-08-12 00:41:04 [scrapy.core.engine] INFO: Spider closed (finished)
    • Log

      /1/log/utf8/event_scrapers/rowayton_arts/ad1ac97e95d511f1b73a0050565fa5d9/?job_finished=True&ui=mobile

    • Source

      http://127.0.0.1:6800/logs/event_scrapers/rowayton_arts/ad1ac97e95d511f1b73a0050565fa5d9.log

  • sourcelog
    last update time2026-08-12 00:41:04
    last update timestamp1786488064
    downloader / request bytes124382
    downloader / request count128
    downloader / request method count / GET128
    downloader / response bytes3016840
    downloader / response count128
    downloader / response status count / 200128
    dupefilter / filtered33
    elapsed time seconds21.626482
    feedexport / success count / FileFeedStorage1
    finish reasonfinished
    finish timedatetime.datetime(2026, 8, 11, 22, 41, 4, 188447, tzinfo=datetime.timezone.utc)
    httpcompression / response bytes10097432
    httpcompression / response count128
    item scraped count124
    items per minute354.28571428571433
    log count / DEBUG501
    log count / ERROR39
    log count / INFO3
    log count / WARNING2
    memusage / max99794944
    memusage / startup99794944
    request depth max1
    response received count128
    responses per minute365.7142857142857
    scheduler / dequeued128
    scheduler / dequeued / memory128
    scheduler / enqueued128
    scheduler / enqueued / memory128
    start timedatetime.datetime(2026, 8, 11, 22, 40, 42, 561965, tzinfo=datetime.timezone.utc)