• It's recommended to check out the latest log via: the Stats page >> View log >> Tail

PROJECT (sourcing_v2), SPIDER (auto_selling_autotrader.co.uk)

2026-03-26 16:54:54 [scrapy.utils.log] INFO: Scrapy 2.11.2 started (bot: SourcingV2)
2026-03-26 16:54:54 [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-26 16:54:54 [auto_selling_autotrader.co.uk] INFO: Starting auto_selling_autotrader.co.uk spider
2026-03-26 16:54:54 [auto_selling_autotrader.co.uk] INFO: Quick mode enabled: batching detail requests in groups of 10
2026-03-26 16:54:54 [auto_selling_autotrader.co.uk] INFO: Limiting photo downloads to 1 per item
2026-03-26 16:54:54 [auto_selling_autotrader.co.uk] INFO: _job: 7fea10f8293411f18f76c264925fbcfa, SCRAPY_JOB: None
2026-03-26 16:54:54 [scrapy.addons] INFO: Enabled addons:
[]
2026-03-26 16:54:54 [asyncio] DEBUG: Using selector: EpollSelector
2026-03-26 16:54:54 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2026-03-26 16:54:54 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2026-03-26 16:54:54 [scrapy.extensions.telnet] INFO: Telnet Password: ca74bd112700afca
2026-03-26 16:54:54 [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-26 16:54:54 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'SourcingV2',
 'CLOSESPIDER_TIMEOUT': 3600,
 'DOWNLOAD_MAXSIZE': 52428800,
 'DOWNLOAD_WARNSIZE': 10485760,
 'FEED_EXPORT_ENCODING': 'utf-8',
 'LOG_FILE': '/var/log/scrapyd/logs/sourcing_v2/auto_selling_autotrader.co.uk/7fea10f8293411f18f76c264925fbcfa.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-26 16:54:54 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2026-03-26 16:54:54 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2026-03-26 16:54:54 [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-26 16:54:54 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Setting up IdGenerationMiddleware for auto_selling
2026-03-26 16:54:54 [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-26 16:54:54 [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-26 16:54:54 [scrapy.core.engine] INFO: Spider opened
2026-03-26 16:54:54 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2026-03-26 16:54:54 [common.service_bus.service_bus_client_factory] INFO: ServiceBusClient initialized via DefaultAzureCredential for alx-production-bus.servicebus.windows.net
2026-03-26 16:54:54 [crawlers.pipelines.base_azure_bus_pipeline] INFO: [AzureBusPipeline] Connected to topic auto.sourcing-v2-quickmode
2026-03-26 16:54:54 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2026-03-26 16:54:54 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2026-03-26 16:54:54 [scrapy.extensions.memusage] INFO: Peak memory usage is 140MiB
2026-03-26 16:54:54 [scrapy-playwright] INFO: Starting download handler
2026-03-26 16:54:54 [scrapy-playwright] INFO: Starting download handler
2026-03-26 16:54:59 [auto_selling_autotrader.co.uk] INFO: Scraper started with retailer ID: 10035341 and multipost_profile_id: aa4a69f6-b1d5-407e-ab99-a0ad7cb13b26 and job_id: 7fea10f8293411f18f76c264925fbcfa and url: https://www.autotrader.co.uk/dealers/derbyshire/ripley/raz-garage-limited-10035341
2026-03-26 16:54:59 [auto_selling_autotrader.co.uk] INFO: Getting list for retailer ID: 10035341, page: 1
2026-03-26 16:54:59 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-26 16:55:01 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://www.autotrader.co.uk/at-gateway?opname=SearchResultsListingsGridQuery&opname=SearchResultsFacetsWithGroupsQuery> (referer: None) ['zyte-api']
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] DEBUG: response: <200 https://www.autotrader.co.uk/at-gateway?opname=SearchResultsListingsGridQuery&opname=SearchResultsFacetsWithGroupsQuery>
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Page: 1/1, total results: 14
2026-03-26 16:55:01 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 2115
2026-03-26 16:55:01 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): alxsourcingstorageprod.table.core.windows.net:443
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603261016422%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603261016422: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603240959000%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603240959000: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603240958216%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603240958216: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603230940485%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603230940485: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603200854952%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603200854952: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603090525442%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603090525442: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603090523545%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603090523545: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603050426211%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603050426211: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603040390668%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202603040390668: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602240177969%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202602240177969: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602139908868%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202602139908868: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602059700169%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202602059700169: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602049659770%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202602049659770: 1
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202510287485111%27 HTTP/1.1" 200 None
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Scrape type for 202510287485111: 1
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Quick mode: batching 10 detail requests (batch 1)
2026-03-26 16:55:01 [auto_selling_autotrader.co.uk] INFO: Quick mode: batching 4 detail requests (batch 2)
2026-03-26 16:55:01 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-26 16:55:01 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2026-03-26 16:55:03 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://www.autotrader.co.uk/at-graphql> (referer: https://www.autotrader.co.uk/at-gateway?opname=SearchResultsListingsGridQuery&opname=SearchResultsFacetsWithGroupsQuery) ['zyte-api']
2026-03-26 16:55:03 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:03 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 710a1b26-46fd-59db-928a-3ba115d0e3bc with identifier: 202602139908868
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 710a1b26-46fd-59db-928a-3ba115d0e3bc
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fcff2c6e9fe094b488704761d313b78c1.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/cff2c6e9fe094b488704761d313b78c1.jpg not downloaded yet
2026-03-26 16:55:03 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:03 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62 with identifier: 202602059700169
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ffea34e733cf24b339cf3f6ba8d5ce9c3.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/fea34e733cf24b339cf3f6ba8d5ce9c3.jpg not downloaded yet
2026-03-26 16:55:03 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:03 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 0ada890b-2f01-5c87-8be1-275fce019506 with identifier: 202602049659770
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 0ada890b-2f01-5c87-8be1-275fce019506
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fa6c99fa3a92c4d80983bef89e84a0f01.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/a6c99fa3a92c4d80983bef89e84a0f01.jpg not downloaded yet
2026-03-26 16:55:03 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:03 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 267c72dc-e888-578f-895d-ec83a4104ba8 with identifier: 202510287485111
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 267c72dc-e888-578f-895d-ec83a4104ba8
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ff638075cdb884ba7a9948656191dd6b4.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/f638075cdb884ba7a9948656191dd6b4.jpg not downloaded yet
2026-03-26 16:55:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/a6c99fa3a92c4d80983bef89e84a0f01.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:03 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://www.autotrader.co.uk/at-graphql> (referer: https://www.autotrader.co.uk/at-gateway?opname=SearchResultsListingsGridQuery&opname=SearchResultsFacetsWithGroupsQuery) ['zyte-api']
2026-03-26 16:55:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/cff2c6e9fe094b488704761d313b78c1.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/fea34e733cf24b339cf3f6ba8d5ce9c3.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Using managed identity for Azure Blob Storage
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Using managed identity with client ID: 39192755-105d-4ce2-a21d-ab53b63f8b87
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b592790>
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2026-03-26 16:55:03 [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-26 16:55:03 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): alxproduction.blob.core.windows.net:443
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:03 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_0ada890b-2f01-5c87-8be1-275fce019506/0ada890b-2f01-5c87-8be1-275fce019506_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:03 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fa6c99fa3a92c4d80983bef89e84a0f01.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/a6c99fa3a92c4d80983bef89e84a0f01.jpg saved to cache
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 0ada890b-2f01-5c87-8be1-275fce019506
2026-03-26 16:55:03 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 0ada890b-2f01-5c87-8be1-275fce019506 sending to next pipeline
2026-03-26 16:55:03 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 0ada890b-2f01-5c87-8be1-275fce019506 with identifier 202602049659770
2026-03-26 16:55:03 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: None -> <ConnectionState.START: 0>
2026-03-26 16:55:03 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.START: 0> -> <ConnectionState.HDR_SENT: 2>
2026-03-26 16:55:03 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.HDR_SENT: 2> -> <ConnectionState.HDR_SENT: 2>
2026-03-26 16:55:03 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.HDR_SENT: 2> -> <ConnectionState.OPEN_PIPE: 4>
2026-03-26 16:55:03 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.UNMAPPED: 0> -> <SessionState.BEGIN_SENT: 1>
2026-03-26 16:55:03 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2026-03-26 16:55:03 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2026-03-26 16:55:03 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2026-03-26 16:55:03 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2026-03-26 16:55:03 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPEN_PIPE: 4> -> <ConnectionState.OPEN_SENT: 7>
2026-03-26 16:55:04 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPEN_SENT: 7> -> <ConnectionState.OPENED: 9>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.BEGIN_SENT: 1> -> <SessionState.MAPPED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS completed opening with status: <ManagementOpenResult.OK: 1>
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 2023
2026-03-26 16:55:04 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS update in progress. Token put time: 1774544104
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS update in progress. Token put time: 1774544104
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS Put token result (<ManagementExecuteOperationResult.OK: 0>), status code: 202, status_description: b'Accepted'.
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 0ada890b-2f01-5c87-8be1-275fce019506
2026-03-26 16:55:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/a6c99fa3a92c4d80983bef89e84a0f01.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 130,
 'color': 'Silver',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense experience backed by experience and attention to '
                'detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide ClearCover Warranty options for added '
                'peace of mind. Warranty can be purchased for 12, 24, or 36 '
                'months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                '£2.00 per mile (trailered)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '1L',
 'engine_horse_power': 94,
 'fuel_type': 'Petrol',
 'id': '0ada890b-2f01-5c87-8be1-275fce019506',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202602049659770',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Volkswagen',
 'model': 'Polo',
 'odometer': 40800,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 46,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_0ada890b-2f01-5c87-8be1-275fce019506/0ada890b-2f01-5c87-8be1-275fce019506_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 177134,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/a6c99fa3a92c4d80983bef89e84a0f01.jpg',
             'Width': 1920}],
 'price': 12495,
 'price_includes_vat': True,
 'registration_date': '2020-09-21',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Volkswagen 1.0 Polo Beats TSi 5dr',
 'transmission': 'manual',
 'trim': 'beats',
 'year': 2020}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602049659770%27 HTTP/1.1" 200 None
2026-03-26 16:55:04 [auto_selling_autotrader.co.uk] INFO: Saving data for 202602049659770: {'created_time': 1774544104.591311, 'last_price_update_time': 1774544104.591321}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202602049659770') HTTP/1.1" 204 0
2026-03-26 16:55:04 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:04 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: ac2f133d-3637-506c-93c1-d3f9a420e37c with identifier: 202603261016422
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item ac2f133d-3637-506c-93c1-d3f9a420e37c
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F94957aeec3b14d2ca986e440e40f4b3c.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/94957aeec3b14d2ca986e440e40f4b3c.jpg not downloaded yet
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b5e5cd0>
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_710a1b26-46fd-59db-928a-3ba115d0e3bc/710a1b26-46fd-59db-928a-3ba115d0e3bc_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fcff2c6e9fe094b488704761d313b78c1.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/cff2c6e9fe094b488704761d313b78c1.jpg saved to cache
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 710a1b26-46fd-59db-928a-3ba115d0e3bc
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 710a1b26-46fd-59db-928a-3ba115d0e3bc sending to next pipeline
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b1a2690>
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:04 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62/6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ffea34e733cf24b339cf3f6ba8d5ce9c3.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/fea34e733cf24b339cf3f6ba8d5ce9c3.jpg saved to cache
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62 sending to next pipeline
2026-03-26 16:55:04 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 710a1b26-46fd-59db-928a-3ba115d0e3bc with identifier 202602139908868
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 710a1b26-46fd-59db-928a-3ba115d0e3bc
2026-03-26 16:55:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/cff2c6e9fe094b488704761d313b78c1.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 163,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'SPEC:\n'
                '1 OWNER FROM NEW \n'
                'BMW Icon Adaptive LED Headlights\n'
                'Glass Sunroof\n'
                'Adaptive M Sport Suspension\n'
                'Dakota Leather - Cognac with Brown Highlights with Black '
                'Interior\n'
                'Seat Adjustment - Front Electric with Driver Memory\n'
                'Apple CarPlay / Pro Nav \n'
                'Loudspeaker System - Harman Kardon\n'
                'Seat Heating for Driver and Front Passenger\n'
                'Wagner Tuning sports cat  (STOCK TUNE ECU)\n'
                'Carbon Body kit\n'
                '\n'
                'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 2,
 'emission_standard': 'Euro 6',
 'engine': '3L',
 'engine_horse_power': 335,
 'fuel_type': 'Petrol',
 'id': '710a1b26-46fd-59db-928a-3ba115d0e3bc',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202602139908868',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'BMW',
 'model': '2 Series',
 'odometer': 100160,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 55,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_710a1b26-46fd-59db-928a-3ba115d0e3bc/710a1b26-46fd-59db-928a-3ba115d0e3bc_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 221497,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/cff2c6e9fe094b488704761d313b78c1.jpg',
             'Width': 1920}],
 'price': 15995,
 'price_includes_vat': True,
 'registration_date': '2018-03-28',
 'seats_number': 4,
 'seller_name': None,
 'title': 'BMW 2 SERIES 3.0 M240I Auto 2dr',
 'transmission': 'automatic',
 'year': 2018}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602139908868%27 HTTP/1.1" 200 None
2026-03-26 16:55:04 [auto_selling_autotrader.co.uk] INFO: Saving data for 202602139908868: {'created_time': 1774544104.909425, 'last_price_update_time': 1774544104.909434}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202602139908868') HTTP/1.1" 204 0
2026-03-26 16:55:04 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62 with identifier 202602059700169
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:04 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62
2026-03-26 16:55:04 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/fea34e733cf24b339cf3f6ba8d5ce9c3.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 49,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense experience backed by experience and attention to '
                'detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide ClearCover Warranty options for added '
                'peace of mind. Warranty can be purchased for 12, 24, or 36 '
                'months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                '£2.00 per mile (trailered)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 4,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 249,
 'fuel_type': 'Petrol Plug-in Hybrid',
 'id': '6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202602059700169',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'BMW',
 'model': '5 Series',
 'odometer': 100190,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 52,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62/6ad47a55-3f2d-56d6-9c1b-9f6ed2630e62_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 198775,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/fea34e733cf24b339cf3f6ba8d5ce9c3.jpg',
             'Width': 1920}],
 'price': 12995,
 'price_includes_vat': True,
 'registration_date': '2019-03-26',
 'seats_number': 5,
 'seller_name': None,
 'title': 'BMW 5 SERIES 2.0 530e M Sport Auto 4dr',
 'transmission': 'automatic',
 'trim': 'M Sport',
 'year': 2019}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602059700169%27 HTTP/1.1" 200 None
2026-03-26 16:55:04 [auto_selling_autotrader.co.uk] INFO: Saving data for 202602059700169: {'created_time': 1774544104.953027, 'last_price_update_time': 1774544104.953034}
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202602059700169') HTTP/1.1" 204 0
2026-03-26 16:55:04 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:04 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: bd476220-08e4-51b0-b91b-972c35cc730b with identifier: 202603240959000
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item bd476220-08e4-51b0-b91b-972c35cc730b
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:04 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F4cb1584535304e26996555a45c29cb77.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:04 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/4cb1584535304e26996555a45c29cb77.jpg not downloaded yet
2026-03-26 16:55:04 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/f638075cdb884ba7a9948656191dd6b4.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 6c7c8d52-4327-58cc-8657-96ff568a7be0 with identifier: 202603240958216
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 6c7c8d52-4327-58cc-8657-96ff568a7be0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F81dab4dfa22c4c678177cc1dd3a5ef54.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/81dab4dfa22c4c678177cc1dd3a5ef54.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 1e1a3261-42b2-55b4-96da-bdcda0a9eeac with identifier: 202603230940485
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 1e1a3261-42b2-55b4-96da-bdcda0a9eeac
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F30db19b2cac04d6da6e702bee264adb1.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/30db19b2cac04d6da6e702bee264adb1.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a with identifier: 202603200854952
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fcf09c49e252b4fc581f0db4469579dbb.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/cf09c49e252b4fc581f0db4469579dbb.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 095152d8-d521-510b-9064-4e5c207180b3 with identifier: 202603090525442
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 095152d8-d521-510b-9064-4e5c207180b3
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ff00b40ae936d4effa03f0d217fe9f4b1.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/f00b40ae936d4effa03f0d217fe9f4b1.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 80175abe-7aea-562c-94a1-0c4e1f5d0af7 with identifier: 202603090523545
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 80175abe-7aea-562c-94a1-0c4e1f5d0af7
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F2b334f3d812a4acfbadf72c9fb3ff3f6.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/2b334f3d812a4acfbadf72c9fb3ff3f6.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: f7ba10ce-74ea-56dd-9094-35407134c9f5 with identifier: 202603050426211
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item f7ba10ce-74ea-56dd-9094-35407134c9f5
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fae032b0d12b14abdb307a1aa485606be.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/ae032b0d12b14abdb307a1aa485606be.jpg not downloaded yet
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 43fdf1ff-d619-5fbc-9456-95ba6bad68ac with identifier: 202603040390668
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 43fdf1ff-d619-5fbc-9456-95ba6bad68ac
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fb85425aab32c482ab77979d0bebce689.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/b85425aab32c482ab77979d0bebce689.jpg not downloaded yet
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/94957aeec3b14d2ca986e440e40f4b3c.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe488358ed0>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_267c72dc-e888-578f-895d-ec83a4104ba8/267c72dc-e888-578f-895d-ec83a4104ba8_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ff638075cdb884ba7a9948656191dd6b4.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/f638075cdb884ba7a9948656191dd6b4.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 267c72dc-e888-578f-895d-ec83a4104ba8
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 267c72dc-e888-578f-895d-ec83a4104ba8 sending to next pipeline
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Extracted item from batch: None
2026-03-26 16:55:05 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 84bb3c51-852a-50d8-aa52-8113909ed33f with identifier: 202602240177969
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 1 photos for item 84bb3c51-852a-50d8-aa52-8113909ed33f
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F08c267e1608440d994ab1054ce48087b.jpg%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/08c267e1608440d994ab1054ce48087b.jpg not downloaded yet
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 267c72dc-e888-578f-895d-ec83a4104ba8 with identifier 202510287485111
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 267c72dc-e888-578f-895d-ec83a4104ba8
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/f638075cdb884ba7a9948656191dd6b4.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 180,
 'color': 'White',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.\n'
                '\n'
                '6 MONTHS MINIMUM NATIONWIDE WARRANTY AND BREAKDOWN COVER '
                'INCLUDED - ALL OF OUR VEHICLES ARE PREPARED TO A HIGH '
                'STANDARD - HPI CLEAR - GENUINE MILEAGE - MINIMUM 8 MONTHS MOT '
                '- EXCELLENT SERVICE HISTORY - ALL VEHICLES CLEANED - SATURDAY '
                'AND SUNDAY APPOINTMENT ONLY! \n'
                ' \n'
                ' RZ Cars is a small, independent dealership offering quality '
                'used vehicles at competitive prices. We pride ourselves on '
                'providing a simple yet personalised car-buying experience, '
                'supported by a team of highly trained and experienced '
                'professionals with decades of expertise in the motor '
                'industry.\n'
                '\n'
                'For every customer, we create personalised walk around '
                'videos, allowing you to thoroughly inspect your chosen car '
                'before any in-person visit or collection. We are meticulous '
                'about the cars we sell, as demonstrated by our comprehensive '
                'vehicle checks. \n'
                '\n'
                'We provide up to 36 months warranty for added peace of mind, '
                'and every vehicle undergoes a thorough HPI check to ensure it '
                'is free from any hidden issues. Part exchange is welcome, '
                'making it easy for you to trade in your old car.\n'
                '\n'
                'We also offer instant finance approval directly through us, '
                'featuring highly competitive rates.\n'
                '\n'
                'opening hours.\n'
                'Monday - Friday 9am - 6pm\n'
                'Saturday - 9am - 4pm (appointment only)\n'
                'Sunday - 10am - 4pm (appointment only)',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 306,
 'fuel_type': 'Petrol',
 'id': '267c72dc-e888-578f-895d-ec83a4104ba8',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202510287485111',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Volkswagen',
 'model': 'Golf',
 'odometer': 54520,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 35,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_267c72dc-e888-578f-895d-ec83a4104ba8/267c72dc-e888-578f-895d-ec83a4104ba8_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 173531,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/f638075cdb884ba7a9948656191dd6b4.jpg',
             'Width': 1920}],
 'price': 17995,
 'price_includes_vat': True,
 'registration_date': '2018-03-07',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Volkswagen Golf 2.0 TSI R Hatchback 5dr Petrol Manual 4Motion Euro '
          '6 (s/s) (310 ps) FREE 6 MONTHS NATIONWIDE WARRANTY!',
 'transmission': 'manual',
 'trim': 'R',
 'year': 2018}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202510287485111%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202510287485111: {'created_time': 1774544105.226652, 'last_price_update_time': 1774544105.22666}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202510287485111') HTTP/1.1" 204 0
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/4cb1584535304e26996555a45c29cb77.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/81dab4dfa22c4c678177cc1dd3a5ef54.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/30db19b2cac04d6da6e702bee264adb1.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe488362990>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_ac2f133d-3637-506c-93c1-d3f9a420e37c/ac2f133d-3637-506c-93c1-d3f9a420e37c_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F94957aeec3b14d2ca986e440e40f4b3c.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/94957aeec3b14d2ca986e440e40f4b3c.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item ac2f133d-3637-506c-93c1-d3f9a420e37c
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item ac2f133d-3637-506c-93c1-d3f9a420e37c sending to next pipeline
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: ac2f133d-3637-506c-93c1-d3f9a420e37c with identifier 202603261016422
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item ac2f133d-3637-506c-93c1-d3f9a420e37c
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/94957aeec3b14d2ca986e440e40f4b3c.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 178,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£2 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 271,
 'fuel_type': 'Petrol',
 'id': 'ac2f133d-3637-506c-93c1-d3f9a420e37c',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603261016422',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Hyundai',
 'model': 'i30',
 'odometer': 47000,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 52,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_ac2f133d-3637-506c-93c1-d3f9a420e37c/ac2f133d-3637-506c-93c1-d3f9a420e37c_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 215150,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/94957aeec3b14d2ca986e440e40f4b3c.jpg',
             'Width': 1920}],
 'price': 20495,
 'price_includes_vat': True,
 'registration_date': '2019-12-31',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Hyundai 2.0 i30 N Performance TGDi 5dr',
 'transmission': 'manual',
 'trim': 'N Performance',
 'year': 2019}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603261016422%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603261016422: {'created_time': 1774544105.329093, 'last_price_update_time': 1774544105.3291}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603261016422') HTTP/1.1" 204 0
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe489575e50>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_bd476220-08e4-51b0-b91b-972c35cc730b/bd476220-08e4-51b0-b91b-972c35cc730b_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F4cb1584535304e26996555a45c29cb77.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/4cb1584535304e26996555a45c29cb77.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item bd476220-08e4-51b0-b91b-972c35cc730b
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item bd476220-08e4-51b0-b91b-972c35cc730b sending to next pipeline
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/08c267e1608440d994ab1054ce48087b.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: bd476220-08e4-51b0-b91b-972c35cc730b with identifier 202603240959000
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item bd476220-08e4-51b0-b91b-972c35cc730b
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/4cb1584535304e26996555a45c29cb77.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 150,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£2 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 242,
 'fuel_type': 'Petrol',
 'id': 'bd476220-08e4-51b0-b91b-972c35cc730b',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603240959000',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Skoda',
 'model': 'Octavia',
 'odometer': 58240,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 47,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_bd476220-08e4-51b0-b91b-972c35cc730b/bd476220-08e4-51b0-b91b-972c35cc730b_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 208634,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/4cb1584535304e26996555a45c29cb77.jpg',
             'Width': 1920}],
 'price': 16495,
 'price_includes_vat': True,
 'registration_date': '2018-03-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'SKODA 2.0 Octavia vRS 245 TSi 5dr',
 'transmission': 'manual',
 'trim': 'vRS',
 'year': 2018}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603240959000%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603240959000: {'created_time': 1774544105.421388, 'last_price_update_time': 1774544105.421395}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603240959000') HTTP/1.1" 204 0
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe488320610>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_6c7c8d52-4327-58cc-8657-96ff568a7be0/6c7c8d52-4327-58cc-8657-96ff568a7be0_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F81dab4dfa22c4c678177cc1dd3a5ef54.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/81dab4dfa22c4c678177cc1dd3a5ef54.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 6c7c8d52-4327-58cc-8657-96ff568a7be0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 6c7c8d52-4327-58cc-8657-96ff568a7be0 sending to next pipeline
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b1ab490>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_1e1a3261-42b2-55b4-96da-bdcda0a9eeac/1e1a3261-42b2-55b4-96da-bdcda0a9eeac_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F30db19b2cac04d6da6e702bee264adb1.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/30db19b2cac04d6da6e702bee264adb1.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 1e1a3261-42b2-55b4-96da-bdcda0a9eeac
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 1e1a3261-42b2-55b4-96da-bdcda0a9eeac sending to next pipeline
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 6c7c8d52-4327-58cc-8657-96ff568a7be0 with identifier 202603240958216
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 6c7c8d52-4327-58cc-8657-96ff568a7be0
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/81dab4dfa22c4c678177cc1dd3a5ef54.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 124,
 'color': 'Silver',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£2 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 5',
 'engine': '2L',
 'engine_horse_power': 181,
 'fuel_type': 'Diesel',
 'id': '6c7c8d52-4327-58cc-8657-96ff568a7be0',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603240958216',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'BMW',
 'model': '3 Series',
 'odometer': 79760,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 50,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_6c7c8d52-4327-58cc-8657-96ff568a7be0/6c7c8d52-4327-58cc-8657-96ff568a7be0_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 157664,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/81dab4dfa22c4c678177cc1dd3a5ef54.jpg',
             'Width': 1920}],
 'price': 9995,
 'price_includes_vat': True,
 'registration_date': '2014-11-11',
 'seats_number': 5,
 'seller_name': None,
 'title': 'BMW 3 SERIES 2.0 320d M Sport Touring Auto 5dr',
 'transmission': 'automatic',
 'trim': 'M Sport',
 'year': 2014}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603240958216%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603240958216: {'created_time': 1774544105.549389, 'last_price_update_time': 1774544105.549397}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603240958216') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 1e1a3261-42b2-55b4-96da-bdcda0a9eeac with identifier 202603230940485
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 1e1a3261-42b2-55b4-96da-bdcda0a9eeac
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/30db19b2cac04d6da6e702bee264adb1.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 161,
 'color': 'Red',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£2 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 2,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 158,
 'fuel_type': 'Petrol',
 'id': '1e1a3261-42b2-55b4-96da-bdcda0a9eeac',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603230940485',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Mazda',
 'model': 'MX-5 RF',
 'odometer': 64000,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 42,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_1e1a3261-42b2-55b4-96da-bdcda0a9eeac/1e1a3261-42b2-55b4-96da-bdcda0a9eeac_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 174612,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/30db19b2cac04d6da6e702bee264adb1.jpg',
             'Width': 1920}],
 'price': 12495,
 'price_includes_vat': True,
 'registration_date': '2017-03-03',
 'seats_number': 2,
 'seller_name': None,
 'title': 'Mazda 2.0 MX-5 RF Sport Nav 2dr',
 'transmission': 'manual',
 'trim': 'Sport Nav',
 'year': 2017}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603230940485%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603230940485: {'created_time': 1774544105.61434, 'last_price_update_time': 1774544105.614348}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603230940485') HTTP/1.1" 204 0
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/b85425aab32c482ab77979d0bebce689.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/cf09c49e252b4fc581f0db4469579dbb.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/f00b40ae936d4effa03f0d217fe9f4b1.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b15f090>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_84bb3c51-852a-50d8-aa52-8113909ed33f/84bb3c51-852a-50d8-aa52-8113909ed33f_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F08c267e1608440d994ab1054ce48087b.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/08c267e1608440d994ab1054ce48087b.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 84bb3c51-852a-50d8-aa52-8113909ed33f
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 84bb3c51-852a-50d8-aa52-8113909ed33f sending to next pipeline
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 84bb3c51-852a-50d8-aa52-8113909ed33f with identifier 202602240177969
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 84bb3c51-852a-50d8-aa52-8113909ed33f
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/08c267e1608440d994ab1054ce48087b.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 114,
 'color': 'Red',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '1.5L',
 'engine_horse_power': 138,
 'fuel_type': 'Petrol',
 'id': '84bb3c51-852a-50d8-aa52-8113909ed33f',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202602240177969',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'BMW',
 'model': '1 Series',
 'odometer': 82000,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 39,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_84bb3c51-852a-50d8-aa52-8113909ed33f/84bb3c51-852a-50d8-aa52-8113909ed33f_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 197341,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/08c267e1608440d994ab1054ce48087b.jpg',
             'Width': 1920}],
 'price': 13995,
 'price_includes_vat': True,
 'registration_date': '2019-09-30',
 'seats_number': 5,
 'seller_name': None,
 'title': 'BMW 1 SERIES 1.5 118I M Sport Auto 5dr',
 'transmission': 'automatic',
 'trim': 'M Sport',
 'year': 2019}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202602240177969%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202602240177969: {'created_time': 1774544105.706604, 'last_price_update_time': 1774544105.706614}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202602240177969') HTTP/1.1" 204 0
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/ae032b0d12b14abdb307a1aa485606be.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://m.atcdn.co.uk/a/media/2b334f3d812a4acfbadf72c9fb3ff3f6.jpg> (referer: https://www.autotrader.co.uk/)
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b590350>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_43fdf1ff-d619-5fbc-9456-95ba6bad68ac/43fdf1ff-d619-5fbc-9456-95ba6bad68ac_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fb85425aab32c482ab77979d0bebce689.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/b85425aab32c482ab77979d0bebce689.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 43fdf1ff-d619-5fbc-9456-95ba6bad68ac
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 43fdf1ff-d619-5fbc-9456-95ba6bad68ac sending to next pipeline
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 43fdf1ff-d619-5fbc-9456-95ba6bad68ac with identifier 202603040390668
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 43fdf1ff-d619-5fbc-9456-95ba6bad68ac
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/b85425aab32c482ab77979d0bebce689.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 171,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 148,
 'fuel_type': 'Petrol',
 'id': '43fdf1ff-d619-5fbc-9456-95ba6bad68ac',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603040390668',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Mitsubishi',
 'model': 'Outlander',
 'odometer': 79780,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 5,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_43fdf1ff-d619-5fbc-9456-95ba6bad68ac/43fdf1ff-d619-5fbc-9456-95ba6bad68ac_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 218196,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/b85425aab32c482ab77979d0bebce689.jpg',
             'Width': 1920}],
 'price': 11995,
 'price_includes_vat': True,
 'registration_date': '2018-09-25',
 'seats_number': 7,
 'seller_name': None,
 'title': 'Mitsubishi 2.0 Outlander 4 CVT 4WD 5dr',
 'transmission': 'automatic',
 'trim': '4',
 'year': 2018}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603040390668%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603040390668: {'created_time': 1774544105.803344, 'last_price_update_time': 1774544105.803352}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603040390668') HTTP/1.1" 204 0
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe489586e50>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a/fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fcf09c49e252b4fc581f0db4469579dbb.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/cf09c49e252b4fc581f0db4469579dbb.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a sending to next pipeline
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48cd34250>
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:05 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_095152d8-d521-510b-9064-4e5c207180b3/095152d8-d521-510b-9064-4e5c207180b3_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Ff00b40ae936d4effa03f0d217fe9f4b1.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/f00b40ae936d4effa03f0d217fe9f4b1.jpg saved to cache
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 095152d8-d521-510b-9064-4e5c207180b3
2026-03-26 16:55:05 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 095152d8-d521-510b-9064-4e5c207180b3 sending to next pipeline
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a with identifier 202603200854952
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a
2026-03-26 16:55:05 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/cf09c49e252b4fc581f0db4469579dbb.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 149,
 'color': 'Grey',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£2 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '2L',
 'engine_horse_power': 286,
 'fuel_type': 'Petrol',
 'id': 'fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603200854952',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'SEAT',
 'model': 'Leon',
 'odometer': 36587,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 50,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a/fb16d7b4-5dc8-59a4-a68e-7e3df54ce59a_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 217367,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/cf09c49e252b4fc581f0db4469579dbb.jpg',
             'Width': 1920}],
 'price': 18495,
 'price_includes_vat': True,
 'registration_date': '2019-03-07',
 'seats_number': 5,
 'seller_name': None,
 'title': 'SEAT 2.0 Leon Cupra 290 TSi Semi-Auto 5dr',
 'transmission': 'automatic',
 'trim': 'Cupra 290',
 'year': 2019}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603200854952%27 HTTP/1.1" 200 None
2026-03-26 16:55:05 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603200854952: {'created_time': 1774544105.942454, 'last_price_update_time': 1774544105.942469}
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:05 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603200854952') HTTP/1.1" 204 0
2026-03-26 16:55:05 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 095152d8-d521-510b-9064-4e5c207180b3 with identifier 202603090525442
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:05 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 095152d8-d521-510b-9064-4e5c207180b3
2026-03-26 16:55:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/f00b40ae936d4effa03f0d217fe9f4b1.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 168,
 'color': 'Blue',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '3L',
 'engine_horse_power': 335,
 'fuel_type': 'Petrol',
 'id': '095152d8-d521-510b-9064-4e5c207180b3',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603090525442',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'BMW',
 'model': '1 Series',
 'odometer': 67125,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 43,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_095152d8-d521-510b-9064-4e5c207180b3/095152d8-d521-510b-9064-4e5c207180b3_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 206868,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/f00b40ae936d4effa03f0d217fe9f4b1.jpg',
             'Width': 1920}],
 'price': 17995,
 'price_includes_vat': True,
 'registration_date': '2018-08-27',
 'seats_number': 5,
 'seller_name': None,
 'title': 'BMW 1 SERIES 3.0 M140I Shadow Edition Auto 5dr',
 'transmission': 'automatic',
 'trim': 'Shadow Edition',
 'year': 2018}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603090525442%27 HTTP/1.1" 200 None
2026-03-26 16:55:06 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603090525442: {'created_time': 1774544106.028207, 'last_price_update_time': 1774544106.028217}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603090525442') HTTP/1.1" 204 0
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe48b57ee10>
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_f7ba10ce-74ea-56dd-9094-35407134c9f5/f7ba10ce-74ea-56dd-9094-35407134c9f5_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252Fae032b0d12b14abdb307a1aa485606be.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/ae032b0d12b14abdb307a1aa485606be.jpg saved to cache
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item f7ba10ce-74ea-56dd-9094-35407134c9f5
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item f7ba10ce-74ea-56dd-9094-35407134c9f5 sending to next pipeline
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Creating container client for top-deal-listing
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Container_client: <azure.storage.blob._container_client.ContainerClient object at 0x7fe488497650>
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Creating container if not exists
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing?restype=container HTTP/1.1" 409 230
2026-03-26 16:55:06 [common.azure_blobstore] INFO: Container already exists, skipping creation
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxproduction.blob.core.windows.net:443 "PUT /top-deal-listing/listing_80175abe-7aea-562c-94a1-0c4e1f5d0af7/80175abe-7aea-562c-94a1-0c4e1f5d0af7_image_0.jpg HTTP/1.1" 201 0
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /PhotoDownloadCache(PartitionKey='auto_selling_autotrader.co.uk',RowKey='https%3A%252F%252Fm.atcdn.co.uk%252Fa%252Fmedia%252F2b334f3d812a4acfbadf72c9fb3ff3f6.jpg') HTTP/1.1" 204 0
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: Image https://m.atcdn.co.uk/a/media/2b334f3d812a4acfbadf72c9fb3ff3f6.jpg saved to cache
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: Downloaded image 0 for item 80175abe-7aea-562c-94a1-0c4e1f5d0af7
2026-03-26 16:55:06 [crawlers.middlewares.photo_download_middleware] INFO: All photos downloaded for item 80175abe-7aea-562c-94a1-0c4e1f5d0af7 sending to next pipeline
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: f7ba10ce-74ea-56dd-9094-35407134c9f5 with identifier 202603050426211
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item f7ba10ce-74ea-56dd-9094-35407134c9f5
2026-03-26 16:55:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/ae032b0d12b14abdb307a1aa485606be.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 97,
 'color': 'Black',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '1L',
 'engine_horse_power': 109,
 'fuel_type': 'Petrol Hybrid',
 'id': 'f7ba10ce-74ea-56dd-9094-35407134c9f5',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603050426211',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Suzuki',
 'model': 'Swift',
 'odometer': 75500,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 42,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_f7ba10ce-74ea-56dd-9094-35407134c9f5/f7ba10ce-74ea-56dd-9094-35407134c9f5_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 210941,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/ae032b0d12b14abdb307a1aa485606be.jpg',
             'Width': 1920}],
 'price': 6495,
 'price_includes_vat': True,
 'registration_date': '2018-10-05',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Suzuki 1.0 Swift SZ5 Boosterjet SHVS 5dr',
 'transmission': 'manual',
 'trim': 'SZ5',
 'year': 2018}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603050426211%27 HTTP/1.1" 200 None
2026-03-26 16:55:06 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603050426211: {'created_time': 1774544106.1857, 'last_price_update_time': 1774544106.185709}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603050426211') HTTP/1.1" 204 0
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 80175abe-7aea-562c-94a1-0c4e1f5d0af7 with identifier 202603090523545
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 80175abe-7aea-562c-94a1-0c4e1f5d0af7
2026-03-26 16:55:06 [scrapy.core.scraper] DEBUG: Scraped from <200 https://m.atcdn.co.uk/a/media/2b334f3d812a4acfbadf72c9fb3ff3f6.jpg>
{'auction_title': '',
 'c_o_2_emission_value': 229,
 'color': 'Blue',
 'currency': 'GBP',
 'description': 'RZ Cars – Quality Used Vehicles | German Car Specialists\n'
                '\n'
                'RZ Cars is a small, independent dealership specialising in '
                'carefully selected German vehicles. We focus on quality, '
                'preparation, and straightforward sales, offering a '
                'no-nonsense buying experience backed by experience and '
                'attention to detail.\n'
                '\n'
                'Every vehicle is fully inspected to a high standard and '
                'supplied with a minimum 8 months MOT, clear history, and '
                'mileage as displayed. Where required, vehicles are serviced '
                'prior to sale and professionally prepared before handover.\n'
                '\n'
                'Warranty Options Available\n'
                '\n'
                'We offer nationwide Warranty options for added peace of mind. '
                'Warranty can be purchased for 12, 24, or 36 months, with:\n'
                '\n'
                'Nationwide repair coverage\n'
                '\n'
                'Optional breakdown cover\n'
                '\n'
                'Warranty is optional and available at additional cost. Full '
                'details available on request.\n'
                '\n'
                'Vehicle Checks\n'
                '\n'
                'Fully inspected prior to sale\n'
                '\n'
                'HPI clear\n'
                '\n'
                'Excellent service history where applicable\n'
                '\n'
                'Road tested before handover\n'
                '\n'
                'Personalised Walk-Around Videos\n'
                '\n'
                'We provide personalised walk-around videos for every vehicle, '
                'allowing you to inspect the car in detail before viewing or '
                'delivery.\n'
                '\n'
                'Finance Available\n'
                '\n'
                'We offer instant finance decisions directly through us, with '
                'terms up to 84 months. Finance is available for employed and '
                'self-employed customers, including those with previous credit '
                'issues (subject to status).\n'
                '\n'
                'Part Exchange\n'
                '\n'
                'Part exchange is welcome and considered subject to '
                'inspection.\n'
                '\n'
                'Nationwide Delivery & Distance Sales\n'
                '\n'
                'Nationwide delivery is available:\n'
                '\n'
                '£1.50 per mile (driven)\n'
                '\n'
                'Distance selling is fully supported with a clear handover '
                'process and cooling-off rights where applicable.\n'
                '\n'
                'Viewing & Appointments\n'
                '\n'
                'Viewings are available during our opening hours, with '
                'appointments preferred to ensure the vehicle is prepared and '
                'ready for you.\n'
                '\n'
                'Opening Hours\n'
                '\n'
                'Monday – Friday: 9am – 6pm\n'
                'Saturday: 9am – 4pm (appointment preferred)\n'
                'Sunday: 10am – 4pm (appointment preferred)\n'
                '\n'
                'No admin fees. No pressure sales. UK mainland sales and '
                'delivery only. Finance subject to status.',
 'doors_number': 5,
 'emission_standard': 'Euro 6',
 'engine': '3.3L',
 'engine_horse_power': 361,
 'fuel_type': 'Petrol',
 'id': '80175abe-7aea-562c-94a1-0c4e1f5d0af7',
 'is_damaged': False,
 'is_operable': True,
 'link_to_web_offer': 'https://www.autotrader.co.uk/car-details/202603090523545',
 'listing': 'directbuy',
 'location': 'Ripley, Derbyshire',
 'make': 'Kia',
 'model': 'Stinger',
 'odometer': 90200,
 'odometer_reading_unit': 'mi',
 'origin_country_code': 'GB',
 'original_photo_count': 56,
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_80175abe-7aea-562c-94a1-0c4e1f5d0af7/80175abe-7aea-562c-94a1-0c4e1f5d0af7_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 210705,
             'Height': 1440,
             'OriginUrl': 'https://m.atcdn.co.uk/a/media/2b334f3d812a4acfbadf72c9fb3ff3f6.jpg',
             'Width': 1920}],
 'price': 20995,
 'price_includes_vat': True,
 'registration_date': '2021-04-30',
 'seats_number': 5,
 'seller_name': None,
 'title': 'KIA 3.3 Stinger GT S ISG Auto 5dr',
 'transmission': 'automatic',
 'trim': 'GT S',
 'year': 2021}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20RowKey%20eq%20%27202603090523545%27 HTTP/1.1" 200 None
2026-03-26 16:55:06 [auto_selling_autotrader.co.uk] INFO: Saving data for 202603090523545: {'created_time': 1774544106.256307, 'last_price_update_time': 1774544106.256319}
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:06 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_autotrader.co.uk',RowKey='202603090523545') HTTP/1.1" 204 0
2026-03-26 16:55:06 [scrapy.core.engine] INFO: Closing spider (finished)
2026-03-26 16:55:06 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close cursor: 'SaveToCdlqDbAutoSelling' object has no attribute 'cursor'
2026-03-26 16:55:06 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close connection: 'SaveToCdlqDbAutoSelling' object has no attribute 'conn'
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process scrape complete CloudEvent for item 7fea10f8293411f18f76c264925fbcfa
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.MAPPED: 3> -> <SessionState.END_SENT: 4>
2026-03-26 16:55:06 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPENED: 9> -> <ConnectionState.CLOSE_SENT: 11>
2026-03-26 16:55:06 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.CLOSE_SENT: 11> -> <ConnectionState.END: 13>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.END_SENT: 4> -> <SessionState.DISCARDING: 6>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-26 16:55:06 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2026-03-26 16:55:06 [azure.servicebus._pyamqp._transport] DEBUG: Transport endpoint is already disconnected: OSError(107, 'Transport endpoint is not connected')
2026-03-26 16:55:06 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: [AzureBusPipeline] connection closed
2026-03-26 16:55:06 [auto_selling_autotrader.co.uk] INFO: auto_selling_autotrader.co.uk 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-26 16:55:07 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2026-03-26 16:55:07 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_autotrader.co.uk%27%20and%20last_price_update_time%20lt%201773248107 HTTP/1.1" 200 None
2026-03-26 16:55:07 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (14 items) in: file:///var/lib/scrapyd/items/sourcing_v2/auto_selling_autotrader.co.uk/7fea10f8293411f18f76c264925fbcfa.jl
2026-03-26 16:55:07 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 114981,
 'downloader/request_count': 17,
 'downloader/request_method_count/GET': 14,
 'downloader/request_method_count/POST': 3,
 'downloader/response_bytes': 3597990,
 'downloader/response_count': 17,
 'downloader/response_status_count/200': 17,
 'elapsed_time_seconds': 12.600369,
 'feedexport/success_count/FileFeedStorage': 1,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2026, 3, 26, 16, 55, 7, 516806, tzinfo=datetime.timezone.utc),
 'item_scraped_count': 14,
 'log_count/DEBUG': 271,
 'log_count/INFO': 260,
 'memusage/max': 146976768,
 'memusage/startup': 146976768,
 'photo_download_count': 14,
 'request_depth_max': 2,
 'response_received_count': 3,
 'scheduler/dequeued': 17,
 'scheduler/dequeued/memory': 17,
 'scheduler/enqueued': 17,
 'scheduler/enqueued/memory': 17,
 'scrape_type/new': 14,
 'scrapy-zyte-api/429': 0,
 'scrapy-zyte-api/attempts': 3,
 'scrapy-zyte-api/error_ratio': 0.0,
 'scrapy-zyte-api/errors': 0,
 'scrapy-zyte-api/fatal_errors': 0,
 'scrapy-zyte-api/mean_connection_seconds': 1.33548368467018,
 'scrapy-zyte-api/mean_response_seconds': 1.4919253882641594,
 'scrapy-zyte-api/processed': 3,
 'scrapy-zyte-api/request_args/customHttpRequestHeaders': 3,
 'scrapy-zyte-api/request_args/experimental.requestCookies': 2,
 'scrapy-zyte-api/request_args/experimental.responseCookies': 3,
 'scrapy-zyte-api/request_args/httpRequestBody': 3,
 'scrapy-zyte-api/request_args/httpRequestMethod': 3,
 'scrapy-zyte-api/request_args/httpResponseBody': 3,
 'scrapy-zyte-api/request_args/httpResponseHeaders': 3,
 'scrapy-zyte-api/request_args/url': 3,
 'scrapy-zyte-api/status_codes/200': 3,
 'scrapy-zyte-api/success': 3,
 'scrapy-zyte-api/success_ratio': 1.0,
 'scrapy-zyte-api/throttle_ratio': 0.0,
 'start_time': datetime.datetime(2026, 3, 26, 16, 54, 54, 916437, tzinfo=datetime.timezone.utc)}
2026-03-26 16:55:07 [scrapy.core.engine] INFO: Spider closed (finished)
2026-03-26 16:55:07 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fe48cd37a90>
2026-03-26 16:55:07 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fe48cd44310>

PROJECT (sourcing_v2), SPIDER (auto_selling_autotrader.co.uk)