Head
2026-03-31 21:24:16 [scrapy.utils.log] INFO: Scrapy 2.11.2 started (bot: SourcingV2)
2026-03-31 21:24:16 [scrapy.utils.log] INFO: Versions: lxml 5.2.2.0, libxml2 2.12.6, cssselect 1.2.0, parsel 1.9.1, w3lib 2.1.2, Twisted 24.3.0, Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0], pyOpenSSL 24.1.0 (OpenSSL 3.2.1 30 Jan 2024), cryptography 42.0.7, Platform Linux-5.15.0-1098-azure-x86_64-with-glibc2.36
2026-03-31 21:24:16 [auto_selling_coches.net.api] INFO: Starting auto_selling_coches.net.api spider (API-based)
2026-03-31 21:24:16 [auto_selling_coches.net.api] INFO: Extracted dealer slug: codingmurcia
2026-03-31 21:24:16 [auto_selling_coches.net.api] INFO: _job: 7a374a6a2ce811f19724def17024dec4, SCRAPY_JOB: None
2026-03-31 21:24:16 [scrapy.addons] INFO: Enabled addons:
[]
2026-03-31 21:24:16 [asyncio] DEBUG: Using selector: EpollSelector
2026-03-31 21:24:16 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-03-31 21:24:16 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-03-31 21:24:16 [scrapy.extensions.telnet] INFO: Telnet Password: 1f63bb1fc93c8945
2026-03-31 21:24:16 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.feedexport.FeedExporter',
'scrapy.extensions.logstats.LogStats',
'scrapy.extensions.closespider.CloseSpider']
2026-03-31 21:24:16 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'SourcingV2',
'CLOSESPIDER_TIMEOUT': 3600,
'CONCURRENT_REQUESTS': 5,
'DOWNLOAD_MAXSIZE': 52428800,
'DOWNLOAD_WARNSIZE': 10485760,
'FEED_EXPORT_ENCODING': 'utf-8',
'LOG_FILE': '/var/log/scrapyd/logs/sourcing_v2/auto_selling_coches.net.api/7a374a6a2ce811f19724def17024dec4.log',
'LOG_FORMATTER': 'crawlers.log_formatter.SourcingLogFormatter',
'MEMUSAGE_LIMIT_MB': 2048,
'MEMUSAGE_WARNING_MB': 1536,
'NEWSPIDER_MODULE': 'spiders',
'REQUEST_FINGERPRINTER_CLASS': 'scrapy_zyte_api.ScrapyZyteAPIRequestFingerprinter',
'REQUEST_FINGERPRINTER_IMPLEMENTATION': '2.7',
'SPIDER_MODULES': ['spiders', 'auth_check'],
'TWISTED_REACTOR': 'twisted.internet.asyncioreactor.AsyncioSelectorReactor',
'USER_AGENT': ''}
2026-03-31 21:24:16 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2026-03-31 21:24:16 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2026-03-31 21:24:16 [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_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2026-03-31 21:24:16 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Setting up IdGenerationMiddleware for auto_selling
2026-03-31 21:24:16 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware',
'crawlers.middlewares.photo_download_middleware.PhotoDownloadMiddleware',
'crawlers.auto_selling.middlewares.id_gen_middleware.IdGenMiddleware']
2026-03-31 21:24:16 [scrapy.middleware] INFO: Enabled item pipelines:
['crawlers.pipelines.post_to_azurebus_auto_selling.AzureBusPipelineAutoSelling',
'crawlers.pipelines.save_to_cdlq_db_auto_selling.SaveToCdlqDbAutoSelling']
2026-03-31 21:24:16 [scrapy.core.engine] INFO: Spider opened
2026-03-31 21:24:16 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2026-03-31 21:24:16 [common.service_bus.service_bus_client_factory] INFO: ServiceBusClient initialized via DefaultAzureCredential for alx-production-bus.servicebus.windows.net
2026-03-31 21:24:16 [crawlers.pipelines.base_azure_bus_pipeline] INFO: [AzureBusPipeline] Connected to topic auto.sourcing-v2
2026-03-31 21:24:16 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-03-31 21:24:16 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-03-31 21:24:16 [scrapy.extensions.memusage] INFO: Peak memory usage is 140MiB
2026-03-31 21:24:16 [scrapy-playwright] INFO: Starting download handler
2026-03-31 21:24:16 [scrapy-playwright] INFO: Starting download handler
2026-03-31 21:24:21 [auto_selling_coches.net.api] INFO: API spider started with URL: https://www.coches.net/concesionario/codingmurcia, dealer_slug: codingmurcia
2026-03-31 21:24:21 [auto_selling_coches.net.api] INFO: Trying fast dealer API: https://web.gw.coches.net/dealers/codingmurcia
2026-03-31 21:24:21 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-31 21:24:22 [scrapy.core.engine] DEBUG: Crawled (400) <GET https://web.gw.coches.net/dealers/codingmurcia> (referer: None) ['zyte-api']
2026-03-31 21:24:22 [auto_selling_coches.net.api] INFO: Search API failed (Ignoring non-200 response), falling back to browserHtml
2026-03-31 21:24:22 [auto_selling_coches.net.api] INFO: Using browserHtml fallback path (page 1)
2026-03-31 21:24:22 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-31 21:24:34 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.coches.net/concesionario/codingmurcia?pg=1> (referer: None) ['zyte-api']
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Total items from HTML header: 45
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Extracting listings from HTML page 1
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Found 30 listings in HTML (page 1)
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Found listing with ID: 70318060
2026-03-31 21:24:34 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 2113
2026-03-31 21:24:34 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): alxsourcingstorageprod.table.core.windows.net:443
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_coches.net.api%27%20and%20RowKey%20eq%20%2770318060%27 HTTP/1.1" 200 None
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Scrape type for 70318060: 1
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Scraping new listing 70318060
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Found listing with ID: 70320891
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-31 21:24:34 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_coches.net.api%27%20and%20RowKey%20eq%20%2770320891%27 HTTP/1.1" 200 None
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Scrape type for 70320891: 1
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Scraping new listing 70320891
2026-03-31 21:24:34 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-31 21:24:34 [auto_selling_coches.net.api] INFO: Found listing with ID: 70318381
Tail
2026-03-31 21:28:16 [scrapy.extensions.memusage] INFO: Peak memory usage is 173MiB
2026-03-31 21:29:11 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: b1d09567-f889-5ce6-a619-1716d00349a5 with identifier 70320147
2026-03-31 21:29:11 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-31 21:29:11 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-31 21:29:11 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item b1d09567-f889-5ce6-a619-1716d00349a5
2026-03-31 21:29:11 [scrapy.core.scraper] DEBUG: Scraped from User timeout caused connection failure: Getting https://a.ccdn.es/cnet/vehicles/19742621/eff0c7b5-86a1-40d3-86d6-54514a45da74.jpg took longer than 180.0 seconds..
{'auction_title': '',
'body_type': 'SUV',
'c_o_2_emission_value': 114,
'category': 'Coches',
'color': 'Blanco',
'currency': 'EUR',
'description': 'We Speak English\n'
'\n'
'Aquí os traemos otro de los coches más demandados , otro X1 '
'F48 nacional pero esta vez restyling, automático, amplio, '
'familiar, moderno y eficiente! Además tiene IVA deducible.\n'
'\n'
'Coding Murcia, taller autorizado BMW. Todos nuestros BMW/Mini '
'se entregan tras una revisión de 130 puntos, cambio de todos '
'los filtros y aceite Ravenol + aditivo Ceratec y limpieza '
'completa. Con 1 año de garantía mecánica integral en nuestro '
'taller o colaboradores.\n'
'Ofrecemos 14 días/1.000km de prueba para todos nuestros '
'vehículos, envios a toda la península. Los costes de cambio '
'de nombre están incluidos en el precio.\n'
'Además, siempre entregamos 2 llaves y aceptamos cualquier '
'prueba mecánica +envío de revisiones oficiales si se '
'solicita.\n'
'\n'
'Equipamiento descatado:\n'
'-Faros de LED\n'
'-Pilotos en LED\n'
'-Luces automáticas\n'
'-Sensores de aparcamiento delanteros y traseros\n'
'-Aparcamiento automático\n'
'-Maletero eléctrico\n'
'-Control de crucero\n'
'-Cuadro Black Panel\n'
'-Equipo de navegación ID6 táctil de 10.25"\n'
'-Carplay y Android Auto\n'
'-Espejos autoabatibles\n'
'\n'
'Equipamiento según fabricante:\n'
'023E\tLlanta AL BMW, radios en V 560\n'
'02VG\tPerformance Control\n'
'0493\tPaquete de compartimentos\n'
'04FS\tAcento oxid-silber mate neg. brillo int\n'
'0548\tVelocímetro km/h\n'
'01CB\tCO2 volumen\n'
'0205\tCambio automático\n'
'0230\tConjunto adicion., versión EU\n'
'0249\tMultifunción p volante\n'
'0255\tVolante deportivo de cuero\n'
'02PA\tProtec.antirrobo para tornillos de rueda\n'
'02VB\tIndicador de presión de los neumáticos\n'
'02VC\tJuego de reparación de neumáticos\n'
'0313\tEspejo exterior abatible\n'
'0316\tAcionam.automático tapa portamaletas\n'
'03AA\tTecho borda negro\n'
'0423\tEsterna velours\n'
'0431\tRetrovisor int. antideslumbrante autom.\n'
'0473\tReposabrazos delantero\n'
'0508\tControl de distancia de aparcam. (PDC)\n'
'0534\tAire acondicionado automático\n'
'0544\tControl de crucero con función de freno\n'
'05A1\tLED faro antiniebla\n'
'05A2\tFaro LED\n'
'05AV\tActive Guard\n'
'05DA\tDesactivación airbag acompañante\n'
'05DP\tAsistente de estacionamiento\n'
'0698\tCódigo de área 2 para DVD\n'
'06AC\tLlamada de emergencia inteligente\n'
'06AE\tTeleservices\n'
'06AK\tConnected Drive Services\n'
'06AP\tRemote Services\n'
'06UN\tNavegación\n'
'0845\tAdvertencia acústica del cinturón\n'
'0856\tVersión de idioma español\n'
'0883\tDocumentación de la motocicleta español\n'
'08KB\tInterv.serv.camb.aceit.24 mes./25 000 km\n'
'08R9\tAgente frigorífico R1234yf\n'
'08S3\tCierre automático al arrancar\n'
'08TF\tProtección de viandantes activa',
'doors_number': 5,
'emission_standard': 'C',
'engine': '2.0L',
'engine_horse_power': 150,
'expiration_date': None,
'fuel_type': 'Diesel',
'id': 'b1d09567-f889-5ce6-a619-1716d00349a5',
'is_damaged': False,
'is_operable': True,
'license_plate': None,
'link_to_web_offer': 'https://www.coches.net/bmw-x1-sdrive18da-business-5p-diesel-2020-en-murcia-70320147-covo.aspx',
'listing': 'auction',
'location': 'Murcia',
'make': 'BMW',
'model': 'X1',
'odometer': 169000,
'odometer_reading_unit': 'km',
'origin_country_code': 'ES',
'original_photo_count': 1,
'photo_urls': ['https://a.ccdn.es/cnet/vehicles/19742621/eff0c7b5-86a1-40d3-86d6-54514a45da74.jpg'],
'photos': [],
'price': 18999,
'price_includes_vat': True,
'registration_date': '2020-01-01',
'seats_number': 5,
'seller_name': None,
'title': 'BMW X1 sDrive18dA Business',
'transmission': 'automatic',
'trim': 'sDrive18dA Business',
'vin': 'WBA71AC0405R01868',
'year': 2020}
2026-03-31 21:29:11 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-31 21:29:11 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_coches.net.api%27%20and%20RowKey%20eq%20%2770320147%27 HTTP/1.1" 200 None
2026-03-31 21:29:11 [auto_selling_coches.net.api] INFO: Saving data for 70320147: {'created_time': 1774992551.449665, 'last_price_update_time': 1774992551.449681}
2026-03-31 21:29:11 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-31 21:29:11 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_coches.net.api',RowKey='70320147') HTTP/1.1" 204 0
2026-03-31 21:29:11 [crawlers.middlewares.photo_download_middleware] DEBUG: Failed to download image 0 for item b1d09567-f889-5ce6-a619-1716d00349a5 due to User timeout caused connection failure: Getting https://a.ccdn.es/cnet/vehicles/19742621/eff0c7b5-86a1-40d3-86d6-54514a45da74.jpg took longer than 180.0 seconds..
2026-03-31 21:29:11 [scrapy.core.engine] INFO: Closing spider (finished)
2026-03-31 21:29:11 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close cursor: 'SaveToCdlqDbAutoSelling' object has no attribute 'cursor'
2026-03-31 21:29:11 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close connection: 'SaveToCdlqDbAutoSelling' object has no attribute 'conn'
2026-03-31 21:29:11 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-31 21:29:11 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-31 21:29:11 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process scrape complete CloudEvent for item 7a374a6a2ce811f19724def17024dec4
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.MAPPED: 3> -> <SessionState.END_SENT: 4>
2026-03-31 21:29:11 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPENED: 9> -> <ConnectionState.CLOSE_SENT: 11>
2026-03-31 21:29:11 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.CLOSE_SENT: 11> -> <ConnectionState.END: 13>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.END_SENT: 4> -> <SessionState.DISCARDING: 6>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-31 21:29:11 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-31 21:29:12 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: [AzureBusPipeline] connection closed
2026-03-31 21:29:12 [auto_selling_coches.net.api] INFO: auto_selling_coches.net.api Crawl ended with reason finished, scrape types: {<ScrapeType.NEW: 1>: 0, <ScrapeType.NEW_DUPLICATE_ID: 4>: 0, <ScrapeType.PRICE_UPDATE: 2>: 0, <ScrapeType.AUCTION_UPDATE: 3>: 0, <ScrapeType.SKIPPED: 0>: 0}
2026-03-31 21:29:12 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-31 21:29:12 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_coches.net.api%27%20and%20last_price_update_time%20lt%201773696552 HTTP/1.1" 200 None
2026-03-31 21:29:13 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (45 items) in: file:///var/lib/scrapyd/items/sourcing_v2/auto_selling_coches.net.api/7a374a6a2ce811f19724def17024dec4.jl
2026-03-31 21:29:13 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 6,
'downloader/exception_type_count/twisted.internet.error.ConnectError': 2,
'downloader/exception_type_count/twisted.internet.error.TimeoutError': 4,
'downloader/request_bytes': 79287,
'downloader/request_count': 54,
'downloader/request_method_count/GET': 54,
'downloader/response_bytes': 4592124,
'downloader/response_count': 48,
'downloader/response_status_count/200': 47,
'downloader/response_status_count/400': 1,
'elapsed_time_seconds': 296.380122,
'feedexport/success_count/FileFeedStorage': 1,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2026, 3, 31, 21, 29, 12, 930104, tzinfo=datetime.timezone.utc),
'item_scraped_count': 45,
'log_count/DEBUG': 665,
'log_count/INFO': 482,
'memusage/max': 181878784,
'memusage/startup': 147324928,
'request_depth_max': 3,
'response_received_count': 48,
'scheduler/dequeued': 54,
'scheduler/dequeued/memory': 54,
'scheduler/enqueued': 54,
'scheduler/enqueued/memory': 54,
'scrape_type/new': 45,
'scrapy-zyte-api/429': 0,
'scrapy-zyte-api/attempts': 48,
'scrapy-zyte-api/error_ratio': 0.0,
'scrapy-zyte-api/errors': 0,
'scrapy-zyte-api/fatal_errors': 0,
'scrapy-zyte-api/mean_connection_seconds': 4.531851887188774,
'scrapy-zyte-api/mean_response_seconds': 4.618225201721847,
'scrapy-zyte-api/processed': 48,
'scrapy-zyte-api/request_args/actions': 2,
'scrapy-zyte-api/request_args/browserHtml': 2,
'scrapy-zyte-api/request_args/customHttpRequestHeaders': 46,
'scrapy-zyte-api/request_args/experimental.requestCookies': 47,
'scrapy-zyte-api/request_args/experimental.responseCookies': 48,
'scrapy-zyte-api/request_args/httpResponseBody': 46,
'scrapy-zyte-api/request_args/httpResponseHeaders': 46,
'scrapy-zyte-api/request_args/requestHeaders': 1,
'scrapy-zyte-api/request_args/url': 48,
'scrapy-zyte-api/status_codes/200': 48,
'scrapy-zyte-api/success': 48,
'scrapy-zyte-api/success_ratio': 1.0,
'scrapy-zyte-api/throttle_ratio': 0.0,
'start_time': datetime.datetime(2026, 3, 31, 21, 24, 16, 549982, tzinfo=datetime.timezone.utc)}
2026-03-31 21:29:13 [scrapy.core.engine] INFO: Spider closed (finished)
2026-03-31 21:29:13 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f751658f7d0>
2026-03-31 21:29:13 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f7516598090>